Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Método gráfico
f=function(x) exp(-x-2)+log(x)
abline(h=0, col="blue")
abline(v=0, col="blue")
x0= 1
*) Formulas empleadas.
X1=x0-f(x0)/f`(x0)
*) Programa en lenguaje R.
f=function(x) exp(-x-2)+log(x)
abline(h=0, col="blue")
abline(v=0, col="blue")
df=function(x) -exp(-x-2)+1/x
for(i in 1:n) {
x1=x0-f(x0)/df(x0)
print(c(i,x0,x1)); error=abs(x1-x0)
if(error<tol){
stop() }
x0=x1 }
X1= 1-(0.04978707)/(0.9502129)
X1= 1-0.0523957
X1= 0.9476043
-Segunda iteración:
X2= 0.9476043-(-0.001353022)/(1.002828)
X2= 0.9476043-(-0.001349206)
X2= 0.9489573
g=function(x) exp(-x-2)+log(x)+x
*)Formulas empleadas
X=g(xo)
*) Programa en lenguaje R.
xo=1;tol=0.001;N=10
g=function(x) exp(-x-2)+log(x)+x
for (i in 1:N) {
x=g(xo);e=abs(x-xo);print(c(i,xo,x))
if(e<tol){cat("Converge en",i,"iteraciones.Raiz=",x)
return()}; xo=x}
X1=exp(-1-2)+log(1)+1
X1=1.049787
Erro1= 1.049787-1
Error1=0.049787
-Segunda iteración:
X2=exp(-1.049787-2)+log(1.049787)+1.049787
X2=1.145743
Erro2=0.0959556
Método de Bisección
a=0;b=1;N=10;E=0.001
f=function(x) exp(-x-2)+log(x)
*) Formulas empleadas
xm=(a+b)/2
Iteración 2
a,b,xm 0.5 1 0.75 imagenes -0.6110622 0.04978707 -0.2237542
raíz= 0.75 error 0.25[1] "cambia a, b queda igual"
Iteración 3
a,b,xm 0.75 1 0.875 imagenes -0.2237542 0.04978707 -0.07711525
raíz= 0.875 error 0.125[1] "cambia a, b queda igual"
Iteración 4
a,b,xm 0.875 1 0.9375 imagenes -0.07711525 0.04978707 -0.01154046
raíz= 0.9375 error 0.0625[1] "cambia a, b queda igual"
Iteración 5
a,b,xm 0.9375 1 0.96875 imagenes -0.01154046 0.04978707 0.01961878
raíz= 0.96875 error 0.03125[1] "cambia b, a queda igual"
Iteración 6
a,b,xm 0.9375 0.96875 0.953125 imagenes -0.01154046 0.01961878
0.00416718
raíz= 0.953125 error 0.015625[1] "cambia b, a queda igual"
Iteración 7
a,b,xm 0.9375 0.953125 0.9453125 imagenes -0.01154046 0.00416718 -
0.003654094
raíz= 0.9453125 error 0.0078125[1] "cambia a, b queda igual"
Iteración 8
a,b,xm 0.9453125 0.953125 0.9492188 imagenes -0.003654094 0.00416718
0.0002646112
raíz= 0.9492188 error 0.00390625[1] "cambia b, a queda igual"
Iteración 9
a,b,xm 0.9453125 0.9492188 0.9472656 imagenes -0.003654094
0.0002646112 -0.001692716
raíz= 0.9472656 error 0.001953125[1] "cambia a, b queda igual"
Iteración 10
a,b,xm 0.9472656 0.9492188 0.9482422 imagenes -0.001692716
0.0002646112 -0.0007135471
raíz= 0.9482422 error 0.0009765625
*) Programa en lenguaje R
a=0;b=1;N=10;E=0.001
f=function(x) exp(-x-2)+log(x)
curve(f,from=-5,to=5,col="red")
abline(h=0,col="blue")
if(f(a)*f(b)>0){
cat("error:f(a)yf(b)son del mismo signo escoja otro ppar de valores")
stop()}
xant=0
for(i in 1:N){ xm=(a+b)/2
err=abs(xm-xant)
cat("\n","Iteración",i)
cat("\n","a,b,xm",a,b,xm,"imagenes",f(a),f(b),f(xm),"\n","raíz=",xm,"error",err)
if(abs(err)<E) {cat("\n","Converge en",i,"raíz=",xm)
stop()}
else{
if (f(a)*f(xm)> 0){a= xm;print("cambia a, b queda igual")}
Error=(0.5-0.75)
Error=0.25
Método de la secante
f=function(x) exp(-x-2)+log(x)
x0=1; x1=2; tol=0.001; n=10
*) Formulas empleadas
Aproxdf=(f(x1)-f(x0)/(x1-x0)
X= x0-(f(x0)/aproxdf)
Error=[x-x0]
*) Programa en lenguaje R
f=function(x) exp(-x-2)+log(x)
x0=1; x1=2; tol=0.001; n=10
for(i in 1:n){
aproxdf=(f(x1)-f(x0))/(x1-x0)
x=x0-(f(x0)/aproxdf)
error=abs(x-x0); print(c(i,aproxdf,x,error))
if(error<tol){
cat("\n","Convergencia en",i,"iteraciones. raíz=",x)
stop() }
x0=x1;x1=x }
aproxdf=0.6616757
X=1-(0.04978707/0.6616757)
X=0.9247561
Error=0.0752439
-Segunda iteración:
Aproxdf= (-0.02454748-0.7114628)/(0.92475609-2)
Aproxdf=0.6845054
X=2-(0.7114628/0.6845054)
X=0.9606177
Error=1.0393823
*)Formulas empleadas
Xm=(b*f(a)-a*f(b))/(f(a)-f(b))
Err=(xm-xant)
*)Valor inicial o valores iniciales según sea el método.
Presentar tabla con 10 iteraciones o con un error de 0.001
según lo que se obtenga primero.
Iteración 1
a,b,xm 0 1 NaN imagenes -Inf 0.04978707 NaN
Raíz= NaN error= NaNError in if (abs(err) < E) { : missing value where
TRUE/FALSE needed
*) Programa en lenguaje R
f=function(x)exp(-x-2)+log(x)
curve(f, from=-5,to=5,col="red")
abline(h=0,col="blue")
if (f(a)*f(b) > 0) {
stop()}
xant=0
for (i in 1:N){
xm=(b*f(a)-a*f(b))/(f(a)-f(b))
err=abs(xm-xant)
cat("\n","Iteración",i)
cat("\n","a,b,xm",a,b,xm,"imagenes",f(a),f(b),f(xm),"\n","Raíz=",xm,"error=",err)
stop()}
else{
if (f(a)*f(xm)>0){a=xm;print("cambia a, b queda igual")}
xant=xm}