Professional Documents
Culture Documents
Trabalhos Computacionais
Trabalhos Computacionais
#exercicio 1
# fun��o f(x) = x.tag(x)-1,28
f<-function(x){((x*tan(x)) - 1.28)}
#gr�fico
curve(f,0,1,col="red",type = "l", main="Grafico exercicio 1")
abline(h=0,col="black")
abline(v=0,col="black")
# bisse��o
bisec<-function(f,a,b,e){
k=0
while (b-a > e){
k=k+1
x=(a+b)/2
if(f(a)*f(x)<0){
a=a
b=x
}
if(f(x)*f(b)<0){
a=x
b=b
}
}
return(list(aproxima��o=(a+b)/2,itera��es=k))
}
bisec(f,0,1,0.00000001)
#exercicio 2
#f<-function(x){(x^3)+(2*x^2)+(2.2*x)+0.4}
g<-function(x){((x^3)+(2*x^2))}
h<-function(x){-((2.2*x)+0.4)}
#grafico de g
curve(g,-1,0, xlim=c(-3,2),col="red",type = "l",main="Grafico exercicio
2",ylab="y")
abline(h=0,col="black")
abline(v=0,col="black")
#grafico de h
curve(h,add=T,col="blue")
text(2.5,0.5,"h(x)")
text(1.5,0.25,"g(x)")
#falsa posi��o
f<-function(x){(x^3)+(2*x^2)+(2.2*x)+0.4}
posi��o_falsa<-function(f,a,b,e){
k=1
x=(a*f(b)-b*f(a))/(f(b)-f(a))
if(f(x)*f(b)<0){
a=x
b=b
x=(a*f(b)-b*f(a))/(f(b)-f(a))
}
}
return(list(aproxima��o=x,itera��es=k))
}
posi��o_falsa(f,-1,0,0.000001)
# exercicio 3
#fun��o
f<-function(x){((x^3)+(x)+1)}
#fun��o itera��o
gfun <- function(x){-1/(x^2+1)}
#grafico
curve(f,-1,0,col="red",type = "l",main="Grafico exercicio 3")
abline(h=0,col="black")
abline(v=0,col="black")
fixedpoint(gfun,00000.1)
#exercicio 4
# fun��o
f<-function(x){(exp(-0.005*x)*(cos(sqrt((2000-0.01*(x^2))))*0.05)-0.01)}
# grafico
curve(f,-100,100,col="red",type = "l",main="Grafico exercicio 4")
abline(h=0,col="black")
abline(v=0,col="black")
#metodo de Newton-Raphson
require(Deriv)
newton_raphson<-function(f,x,e){
f_linha<-Deriv(f)
k=0
while (abs(f(x)) > e){
k=k+1
x<-x-(f(x)/(f_linha(x)))
}
return(list(aproxima��o=x,itera��es=k))
}
newton_raphson(f,100,0.000001)
#exercicio 5
#fun��o
f<-function(x){2*(sqrt(((1-x^2)^2)+ (4*(0.1221)^2)*x^2))-1}
#grafico
curve(f,-5,5,col="red",type = "l",main="Grafico exercicio 4")
abline(h=0,col="black")
abline(v=0,col="black"))
require(Deriv)
newton_raphson<-function(f,x,e){
f_linha<-Deriv(f)
k=0
while (abs(f(x)) > e){
k=k+1
x<-x-(f(x)/(f_linha(x)))
}
return(list(aproxima��o=x,itera��es=k))
}
newton_raphson(f,1,0.0001)
# trabalho computacional 2
#exercicio 1)a
A <-matrix(c(17,1,0,0,0,0,0,6,-5,-4,6,0,0,0,12,0,0,2,-9,1,0,8,0,0,0,0,2,-
4,8,0,0,0,0,0,0,3,-9,6,0,0,0,0,1,0,1,-20,3,0,0,1,0,0,0,6,-23,10,-2,0,0,0,0,0,8,-
31),nrow=8,ncol=8,byrow=F)
b<-c(1000,0,0,0,0,0,0,0)
solve(A,b)
#1)b
A <-matrix(c(17,1,0,0,0,0,0,6,-5,-4,6,0,0,0,12,0,0,2,-9,1,0,8,0,0,0,0,2,-
4,8,0,0,0,0,0,0,3,-9,6,0,0,0,0,1,0,1,-20,3,0,0,1,0,0,0,6,-23,10,-2,0,0,0,0,0,8,-
31),nrow=8,ncol=8,byrow=F)
b=matrix(c(1000,0,0,0,0,0,0,0),ncol=1)
A1= cbind(b[,1],A[,2],A[,3],A[,4],A[,5],A[,6],A[,7],A[,8])
A2= cbind(A[,1],b[,1],A[,3],A[,4],A[,5],A[,6],A[,7],A[,8])
A3= cbind(A[,1],A[,2],b[,1],A[,4],A[,5],A[,6],A[,7],A[,8])
A4= cbind(A[,1],A[,2],A[,3],b[,1],A[,5],A[,6],A[,7],A[,8])
A5= cbind(A[,1],A[,2],A[,3],A[,4],b[,1],A[,6],A[,7],A[,8])
A6= cbind(A[,1],A[,2],A[,3],A[,4],A[,5],b[,1],A[,7],A[,8])
A7= cbind(A[,1],A[,2],A[,3],A[,4],A[,5],A[,6],b[,1],A[,8])
A8= cbind(A[,1],A[,2],A[,3],A[,4],A[,5],A[,6],A[,7],b[,1])
x1=det(A1)/det(A)
x2=det(A2)/det(A)
x3=det(A3)/det(A)
x4=det(A4)/det(A)
x5=det(A5)/det(A)
x6=det(A6)/det(A)
x7=det(A7)/det(A)
x8=det(A8)/det(A)
X=b=matrix(c(x1,x2,x3,x4,x5,x6,x7,x8),ncol=1)
#exercicio 2
f<-function(x){-x + 3}
g<-function(x){((x/3) + 1)}
#Gr�ficos
plot(f,-3,3,col="red")
abline(h=0)
abline(v=0)
plot(g,0,2,add=T,col="blue")
aproxima��es<-matrix(,ncol=2,nrow=5)
i=1
x1_k=0
x2_k=0
e=0.05
aproxima��es[i,1]=x1_k
aproxima��es[i,2]=x2_k
points(aproxima��es[1,1],aproxima��es[1,2],pch="*")
aproxima��es
# primeira itera��o
i=i+1
x1_kmais1=((-1*x2_k) + 3)
x2_kmais1=(((1/3)*x1_k)+ 1)
aproxima��es[i,1]=x1_kmais1
aproxima��es[i,2]=x2_kmais1
points(x1_kmais1,x2_kmais1,pch="*")
aproxima��es
max(abs(x1_kmais1-x1_k),abs(x2_kmais1-x2_k))>e
#segunda itera��o
i=i+1
x1_k=x1_kmais1
x2_k=x2_kmais1
x1_kmais1=((-1*x2_k) + 3)
x2_kmais1=(((1/3)*x1_k)+ 1)
aproxima��es[i,1]=x1_kmais1
aproxima��es[i,2]=x2_kmais1
points(x1_kmais1,x2_kmais1,pch="*")
aproxima��es
max(abs(x1_kmais1-x1_k),abs(x2_kmais1-x2_k))>e
#Terceira itera��o
i=i+1
x1_k=x1_kmais1
x2_k=x2_kmais1
x1_kmais1=((-1*x2_k) + 3)
x2_kmais1=(((1/3)*x1_k)+ 1)
aproxima��es[i,1]=x1_kmais1
aproxima��es[i,2]=x2_kmais1
points(x1_kmais1,x2_kmais1,pch="*")
aproxima��es
max(abs(x1_kmais1-x1_k),abs(x2_kmais1-x2_k))>e
#Quarta itera��o
i=i+1
x1_k=x1_kmais1
x2_k=x2_kmais1
x1_kmais1=((-1*x2_k) + 3)
x2_kmais1=(((1/3)*x1_k)+ 1)
aproxima��es[i,1]=x1_kmais1
aproxima��es[i,2]=x2_kmais1
points(x1_kmais1,x2_kmais1,pch="*")
aproxima��es
max(abs(x1_kmais1-x1_k),abs(x2_kmais1-x2_k))>e
# outro exercicio 2
#matriz a
A <-matrix(c(4,-1,0,-1,0,0,0,0,0,0,-1,4,-1,0,-1,0,0,0,0,0,0,-1,4,0,0,-1,0,0,0,0,-
1,0,0,4,-1,0,0,0,0,0,0,-1,0,-1,4,-1,-1,0,0,0,0,0,-1,0,-1,4,0,-1,0,0,0,0,0,0,-
1,0,4,-1,0,0,0,0,0,0,0,-1,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-
1,4),nrow=10,ncol=10,byrow=F)
#matriz b
b<-c(-110,-30,-40,-10,0,-15,-90,-25,-55,-65)
# m�todo direto
solve(A,b)
#m�todo de Gauss-Seidel
A <-matrix(c(4,-1,0,-1,0,0,0,0,0,0,-1,4,-1,0,-1,0,0,0,0,0,0,-1,4,0,0,-1,0,0,0,0,-
1,0,0,4,-1,0,0,0,0,0,0,-1,0,-1,4,-1,-1,0,0,0,0,0,-1,0,-1,4,0,-1,0,0,0,0,0,0,-
1,0,4,-1,0,0,0,0,0,0,0,-1,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-
1,4),nrow=10,ncol=10,byrow=F)
b<-c(-110,-30,-40,-10,0,-15,-90,-25,-55,-65)
x0=matrix(c(20,20,20,20,20,20,20,20,20,20),ncol=1)
require(pracma)
itersolve(A,b,x0,tol=0.001,method="Gauss-Seidel")
#exercicio 3
require(nleqslv)
sistema <- function(x) {
y <- numeric(2)
y[1] <- ((2*x[1])/9) - ((x[1]^2)/9) + ((4*(x[2]))/4) - ((x[2]^2)/4) + 8/9
y[2] <- (8*(x[1]))- (4*(x[1])^2)+40-(x[2])
y
}
#aproxima��o inicial (-1,-1)
abline(h=-1,col="green",lty=2)
abline(v=-1,col="green",lty=2)
nleqslv(xstart,sistema,method = c("Newton"),control=list(ftol=0.01))
#trabalho computacional 3
plot(x,y,xlim=c(0,1),
ylim=c(0,4),cex.lab=3,las=1,lwd=10,col="blue",cex.axis=2,
ylab="",xlab="")
abline(v=0,lwd=6,col="black")
abline(h=0,lwd=6,col="black")
#transformando os valores
y<-log(y)
plot(x,y,xlim=c(0,1),
ylim=c(0,4),cex.lab=3,las=1,lwd=10,col="blue",cex.axis=2,
ylab="",xlab="")
abline(v=0,lwd=6,col="black")
abline(h=0,lwd=6,col="black")
#ajuste linear
phil<-lm(y~x)
phil$coefficients
phil$coefficients[1]
phil$coefficients[2]
#trabalho computacional 4
require(digitize)
#carregando a figura
cal<- ReadAndCal('figura.jpg')
#marcando os pontos
#calibrar os pontos
#pontos calibrados
data
x<-data[,1]
y<-data[,2]
plot(x,y,xlim=c(0,1),ylim=c(0,1.5),cex.lab=3,las=1,lwd=6,col="blue",cex.axis=2,
ylab="",xlab="")
abline(v=0,lwd=6,col="black")
abline(h=0,lwd=6,col="black")
require(polynom)
p<-poly.calc(x,y)
#valor de p
#grafico da fun��o
plot(p,0,1,lwd=5,col="black",add=T)
abline(v=0,lwd=6,col="black")
abline(h=0,lwd=6,col="black")
# integrando a fun��o para calcular a area
integrate(p,0,0.8)
# area = 0.5966369
# Trabalho computacional 5
require(caTools)
i<-function(x){(log(x+1))/((x^2) +1)}
integrate(i,0,1)
plot(f,xlim=c(0,1.5),ylim=c(0,0.5),cex.lab=3,las=1,lwd=4,col="blue",cex.axis=2,
ylab="",xlab="")
abline(v=0,lwd=4,col="black")
abline(h=0,lwd=4,col="black")
x<-c(0,0.2,0.4,0.6,0.8,1)
y<-c(f(x))
trapz(x,y)
plot(f,xlim=c(0,1.5),ylim=c(0,0.5),cex.lab=3,las=1,lwd=4,col="blue",cex.axis=2,
ylab="",xlab="")
abline(v=0,lwd=4,col="black")
abline(h=0,lwd=4,col="black")
segments(0,f(0),0.2,f(0.2),col="red",lwd=3)
segments(0.2,f(0.2),0.4,f(0.4),col="red",lwd=3)
segments(0.4,f(0.4),0.6,f(0.6),col="red",lwd=3)
segments(0.6,f(0.6),0.8,f(0.8),col="red",lwd=3)
segments(0.8,f(0.8),1,f(1),col="red",lwd=3)
segments(0.2,0,0.2,f(0.2),col="red",lwd=3)
segments(0.4,0,0.4,f(0.4),col="red",lwd=3)
segments(0.6,0,0.6,f(0.6),col="red",lwd=3)
segments(0.8,0,0.8,f(0.8),col="red",lwd=3)
segments(1,0,1,f(1),col="red",lwd=3)
segments(0,0,1,0,col="red",lwd=3)
#erro absoluto " Area real = 0.2721983 " " Area pela regra dos trap�zio = 0.2685311
EA = abs(0.2721983 - 0.2685311)
# EA = 0.0036672
x <- seq(0,1,0.001)
y <-c(f(x))
trapz(x,y)
# com 1000 intervalos a area � de 0.2721982 u.a
#trabalho computacional 6
require(cmna)
# declarando a fun��o
#solu��o exata
#gr�fico
plot(y,0,1,cex.lab=3,xlim=c(0,1),ylim=c(0,1),las=1,lwd=6,col="blue",cex.axis=2)
abline(h=0,lwd=6)
abline(v=0,lwd=6)
#solu��o aproximada
x1<-ipv.euler[,1]
y1<-ipv.euler[,2]
#Grafico da aproxima��o
lines(x1,y1,col="red",lwd=6)