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');

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

001982 0.092784 6 -1.449219 12.527344 0.522766 0.522949 0.521484 -0.375000 -1.000057 0.192184 10 -1.053024 0.562500 0.004134 0.750000 2.539063 0.578125 27.522583 -0.590820 6.012287 0.012025>> .MÉTODO DE LA BISECCIÓN cota inferior=-2.01 i c f(c) Ea 1 -1.382979 5 -1.077393 3.004021 0.048115 12 -1.522217 -0.096185 11 -1.687500 100.522843 7 -1.5 cota superior=-1 Es=0.000000 4 -1.468750 -0.767263 8 -1.020343 0.385109 9 -1.515625 -0.524414 0.024052 13 -1.184265 1.000000 2 -1.272727 3 -1.

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

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

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

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

297474 7 4.003663 8 4.833333 83.428571 323.271289 25.333333 3 3.625698 17.314593 8.529412 4 4.2 2.361111 5 4.316625 0.316639 1.879917 6 4.047389 >> .

Sign up to vote on this title
UsefulNot useful