Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tercera Practica Dirigida Is
Tercera Practica Dirigida Is
Pregunta 1
a)
> curve(x^3-x-3,-2,3)
> abline(h=0,v=0)
En este caso segn el grafico se tiene una raiz real y tambien 2 racices complejas
conjugadas.
b)
xi +1 =
xi 1 f ( xi ) xi f ( xi 1 )
f ( xi ) f ( xi 1 )
Pregunta2
Me piden la raiz +
> curve(x^2+2*x-4,-7,3)
> abline(h=0,v=0)
La raiz
+
x1 , x0
EN TABLA
i
xi
-1
0
x1 =
f(xi)
2
3
4
11
2(11) 3(4)
= 1.429
11 4
xi
-1
0
1
f(xi)
2
3
1.429
4
11
> x<-1.429
> eval(v1)
[1] 0.900041
i
integracion
x2 =
xi
-1
0
1
f(xi)
2
3
1.429
4
11
0.9
3(0.9) 11(1.429)
= 1.28901
0.9 11
xi
f(xi)
integracion
-1
0
1
2
3
1.429
4
11
0.9
integracion
1.289
0.24
> eval(v1)
[1] 0.239521
xi
f(xi)
integracion
-1
0
1
2
3
1.429
4
11
0.9
integracion
integracion
2
3
1.289
0.24
1.238
Ahora en R
METODO DE LA SECANTE
Secante
f=function(x)
{
f=x^2+2*x-4
}
secante3=function(x0,x1,eps,maxit)
{
i=1
tabla=data.frame(t(rep(0,5)))
names(tabla)=c("i","x0","x1","x","abs(x2-x0)")
while (i<maxit)
{
x2=(x0*f(x1)-x1*f(x0))/(f(x1)-f(x0))
tabla=rbind(tabla,c(i,x0,x1,x2,abs(x2-x0)))
if (abs(x2-x1)<eps) ///determinar el numero de tolerancia de las
interacciones
{
print(tabla[-1,])
cat("\n","La raiz aproximada es",x2,"\n")
break// es para todo
}
x0=x1
x1=x2
i=i+1
}
}
> secante3(2,3,0.0001,10)
i
x0
x1
x abs(x2-x0)
2 1 2.000000 3.000000 1.428571 0.571428571
3 2 3.000000 1.428571 1.288889 1.711111111
4 3 1.428571 1.288889 1.238223 0.190348010
5 4 1.288889 1.238223 1.236093 0.052795762
6 5 1.238223 1.236093 1.236068 0.002155429
La raiz aproximada es 1.236068
Lo q esta en rojo vendria a ser la raiz aproiximada cn 3 interacciones
Lo que esta en azul vendria a ser la tolerancia que se le da a la interaccion
Pregunta 6
> curve(cos(x)+exp(x),-6,3)
> abline(h=0,v=0)
Tenemos que escoger un punto incial (un punto cercano a la raiz que se quiere)
Segn el teorema de newton
xi +1 = xi
f ( xi )
f ( xi )
fi
0
1
2
3
xi
f(xi)`
-2
METODO DE NEWTON
fun <- function(x) {}
fv<-expression()
fun1<-function(x){
d<-D(fv,"x")
eval(d)
}
fnewton=function(x,cr,it)
{
i=1
tab<-data.frame(c(0),c(0), c(0))
names(tab)=c("i","x","abs(f(x))")
while (i<it)
{
x<-x-fun(x)/fun1(x)
tab=rbind(tab,c(i,x,abs(fun(x))))
if (fun(x)==0 || abs(fun(x))<cr)
{print(tab[-1,])
cat("\n","La raiz aproximada es = ",x,"\n")
break
}
else
i=i+1
}
}
> fnewton(-2,0.0001,12)
x1 = 2
0.281
= 1.73
1.045
> f1<-expression(cos(x)+exp(x))
> fp1<-expression(-sin(x)+exp(x))
> x<--2
> eval(f1)
[1] -0.2808116
> eval(fp1)
[1] 1.044633
> a1<-eval(f1)
> a2<-eval(fp1)
> x1<--2+a1/a2
> x1
[1] -2.268814
> x1<--2-a1/a2
> x1
[1] -1.731186
> x<-1.73
> a1<-eval(f1)
> a2<-eval(fp1)
> x1<--1.73-a1/a2
> x1
[1] -2.908115
> x<--1.73
> a1<-eval(f1)
> a2<-eval(fp1)
> x1<--1.73-a1/a2
> x1
[1] -1.746101
> a1
[1] 0.01875241
> a2
[1] 1.164638
> x<--1.746
> a1<-eval(f1)
> a2<-eval(fp1)
> x1<--1.746-a1/a2
> x1
[1] -1.74614
fi
0
1
xi
-2
-1.73
f(xi)`
-0.281
0.019
1.045
1.164
2
3
-1.746
-1.746
0.00016
1.159