MÉTODOS NUMÉRICOS I

1.- Emplear el método de la bisección para encontrar la raíz de
la ecuación: y =3x2-2x-10
En el intervalo de -1 a -2.5, calcule:
• El error aprox.
• Grafique los valores de las iteraciones contra el error
aprox.
Solución:
clear all
clc
disp('

MÉTODO DE LA BISECCIÓN

');

G=0;
ant=0;
xm=0;
format long
xa=input('cota inferior=');
xb=input('cota superior=');
Es=input('Es=');
n=1+round((log(xb-xa)-log(0.00001))/log(2));
fprintf('\n

i

c

for i=1:n
f=inline('3*x^2-2*x-10');
ya=feval(f,xa);
yb=feval(f,xb);
ant=xm;
G=xa+xb;
xm=G/2;
ym=feval(f,xm);

f(c)

Ea\n');

else xb=xm.end fprintf('\n') fprintf('%10'.Ea=abs((xm-ant)/xm)*100.ym.6f %10. elseif ya*ym>0 xa=xm. iteraciones consecutivas').i.title('Error aproximado vs.Ea) Eai(i)=Ea.grid on end .ym) fprintf(' %3. yb=ym. fprintf('%10'. iter(i)=i.6f' . end if Ea<Es .6f %10. ya=ym.break.Ea) fprintf('\n'). xb=xm.xm.xm) fprintf('\n').Eai). fprintf('%10'. plot(iter.0f %10. if ya*ym==0 xa=xm.

024052 13 -1.000057 0.522843 7 -1.000000 2 -1.5 cota superior=-1 Es=0.449219 12.468750 -0.539063 0.578125 27.077393 3.272727 3 -1.000000 4 -1.184265 1.524414 0.522766 0.590820 6.527344 0.385109 9 -1.522217 -0.521484 -0.053024 0.192184 10 -1.767263 8 -1.515625 -0.750000 2.012287 0.382979 5 -1.375000 -1.01 i c f(c) Ea 1 -1.004021 0.MÉTODO DE LA BISECCIÓN cota inferior=-2.020343 0.687500 100.048115 12 -1.012025>> .522949 0.092784 6 -1.004134 0.096185 11 -1.562500 0.522583 -0.001982 0.

Solución: clear all clc disp(' MÉTODO REGULA FALSI '). xb=input('cota superior='). xm=0. . c f(c) Ea\n').Repita el problema anterior usando el método de Regula Falsi. %ErrorAprox. G=0. fprintf('\n i for i=1:n f=inline('(x^10)-1'). n=1+round((log(xb-xa)-log(0. Es=input('Es=').00001))/log(2)).(% Ea) 100 90 80 70 60 50 40 30 20 10 0 0 2 4 6 8 10 12 14 2. ant=0.Iteraciones(i)Vs.. format long xa=input('cota inferior=').

6f %10. G=yb*(xb-xa)/(yb-ya).break. disp('LA RAIZ c es ='). yb=feval(f.ym.xm. else xb=xm.ya=feval(f. xb=xm.xa).6f' . yb=ym. if ya*yb>0 disp('Error:f(xa)*f(xb)>0'). xm=xb-G. fprintf(' %3.xb). Ea=abs((xm-ant)/xm)*100. ym=feval(f. end if Ea<Es .xm). ya=ym.0f .end if ya*ym==0 xa=xm.xm) %10.break.6f %10.end if ya*ym>0 xa=xm.i. ant=xm.Ea) break.end fprintf('\n') fprintf('%10'.

fprintf('%10'.6f' .Ea) fprintf('\n').6f %10. .6f %10.fprintf('\n').Repita el problema anterior por el método de la secante.ym.000000 100. Solución: clear all clc disp (' MÉTODO DE LA SECANTE xo=input('1º Valor inicial =').ym) fprintf(' %3. fprintf('%10'.5 cota superior=-1.0 Es=0.000000 4..Ea) end MÉTODO REGULA FALSI cota inferior=-2.000000>> LA RAIZ c es = 1 -1.01 i c f(c) Ea 0.xm.i.0f %10. ').

break.Ea) fprintf(' %3.01 i 1 Xr 12.x1. fprintf('\n i Xr Ea \n'). fprintf('%10'. Ea=[[abs((x1-xo)/x1)]]*100. if Ea<Es.Ea) .x1=input('2º Valor inicial =').6f %10. % error xo=x1. n=input ('numero de iteraciones ='). for i=1:n f=inline('x^2-2*x-10').end fprintf('\n').0f %10. x2=x1-[f(x1)*(x1-xo)]/[f(x1)-f(xo)].i.x1) fprintf('\n').6f end MÉTODO DE LA SECANTE 1º Valor inicial =1 2º Valor inicial =2 numero de iteraciones =40 Es =0. fprintf('%10'.000000 ' . x1=x2. Es=input ('Es =').000000 Ea 50.

361111 5 4.316625 0.625698 17.2 2.316639 1.833333 83.047389 >> .333333 3 3.271289 25.428571 323.879917 6 4.297474 7 4.003663 8 4.314593 8.529412 4 4.

Sign up to vote on this title
UsefulNot useful