Está en la página 1de 9

Tercera practica dirigida mtodos numericos

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
+

Se c rea una tabla


Valores iniciales

x1 , x0

se van usar para hallar x1 (pimera integracion)

Se toman 2 y 3 xq son valores cercanos al punto de corte


En R
> v1<-expression(x^2+2*x-4)
> x<-2
> eval(v1)
[1] 4
> x<-3
> eval(v1)
[1] 11

EN TABLA
i

xi
-1
0

x1 =

f(xi)
2
3

4
11

2(11) 3(4)
= 1.429
11 4

Valor aproximada para la primera integracin 1.429


i

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

Valor aproximada para la segunda integracin 1.289001


> (3*0.9-11*1.429)/(0.9-11)
[1] 1.28901
> x<-1.289

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

Valor aproximada para la tercera integracin 1.238091


> (1.429*0.24-1.289*0.9)/(0.24-0.9)
[1] 1.238091
>

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)
}

La funcion para derivar

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

También podría gustarte