Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MÉTODOS NUMÉRICOS
Método de Newton para la aproximación de raíz
x0 = 1.1000: 0.975 N = 2: 0.9989 N = 3: 0.999 N = 4: 1.000
p=[1 -10 35 -50 24]; x0 = 1.2000: 0.84 N = 2: 0.969 N = 3: 0.998 N = 4: 0.999N = 5: 1.000
x0 = 1.3000: 0.243 N = 2: 0.64 N =3: 0.876 N = 4 0.978 N = 5: 0.999N
q=polyder(p); % Calcula la derivada de p (x) x0 = 1.4000: 7.0N = 2: 6.0N = 3: 5.2N = 4: 4.67N = 5: 4.30N = 6: 4.09
cont2=1;%**** x0 = 1.5000: 2.4N = 2: 0.66N = 3: 0.888N = 4: 0.98N = 5 : 0.999
x0 = 1.6000: 2.109091 N = 2: 1.990284 N = 3: 1.999 N = 4: 2.0
while (cont2<30); %**** x0 = 1.7000: 2.02N = 2: 1.999N =3: 2.00
x0 = 1.8000: 1.99N = 2: 1.999N = 3: 2.00 N = 4: 2.0 6
cont=1;%**** x0 = 1.9000: 1.99N = 2: 1.9999N = 3: 2.0
x0 = 2: 2.00 N = 2: 2.000
x0=1+cont2/10; %**** x0 = 2.1000: 1.992144 N = 2: 1.9999
x0 = 2.2000 1.951724 N = 2: 1.999105
while (cont<10); %**** x0 = 2.3000: 1.820558 N = 2: 1.997 N = 3: 1.999996
if (polyval(q,x0)^2<0.0000001); %**** x0 = 2.4000: 1.32 N =2: -0.04 N = 3: 0.449 N =4: 0.768 N = 5: 0.93N =6:0.993
x0 = 2.5000: -5622.N =2: -4216N =3: -3161.4: -2370. N = 5: -1777N = 6 N = 7: -
x1=x0-polyval(p,x0)/0.0001; %**** 998.N = 8 -748.N = 9: -560.
x0 = 2.6000: 3.683 N = 2: 5.04 N = 3: 4.55 N = 4: 4.23N =5: 4.06
else %**** x0 = 2.7000: 3.179442 N = 2: 3.002
x0 = 2.8000: 3.048276 N = 2: 3.0008
x1=x0-polyval(p,x0)/polyval(q,x0); %**** x0 = 2.9000: 3.007856 N = 2: 3.0000
x0 = 3: 3.000000 N = 2: 3.000000
end %**** x0 = 3.1000: 3.002669 N = 2: 3.00000
x1=x0-polyval(p,x0)/polyval(q,x0); x0 = 3.2000: 3.001504 N = 2: 3.00000
x0 = 3.3000: 2.978330 N = 2: 3.000261
fprintf('\n');fprintf('La siguiente aproximación es:% 9.6f \ n', x1) x0 = 3.4000: 2.890909 N = 2: 3.009716 N = 3: 3.0000
x0 = 3.5000: 2.562N =2: 4.336 N =3: 4.111N = 4: 4.01 N = 5: 4.000
x0=x1;cont=cont+1; %**** x0 = 3.6000: -2.072 N = 2: -1.000 N = 3: -0.22 N =4 0.329N = 5: 0.69N = 6
: 0.90 N =7: 0.986N = 8: 0.999 N =9: 1.0000
End; %**** x0 = 3.7000: 4.756 N =2: 4.359 N =3: 4.12 N =4: 4.02 N = 5: 4.000
x0 = 3.8000: 4.152N =2: 4.030 N = 3: 4.001 N =4: 4.000
cont2=cont2+1; %**** x0 = 3.9000: 4.0247 N =2: 4.001N =3: 4.000
end%****
MÉTODOS NUMÉRICOS
Método de bisección
El método Bisección es un algoritmo para localizar las raíces reales de una función.
El objetivo es encontrar dos valores x, para que f (x1) y f (x2) tengan signos opuestos.
Si se cumple, podemos calcular el punto medio xm =(x1+x2)/2 para x1< x <x2.
MÉTODOS NUMÉRICOS
Método de bisección
Después de hacer la sustitución apropiada, el proceso se repite hasta que la raíz tiene la tolerancia especificada.
0’ol¿
MÉTODOS NUMÉRICOS
Método de bisección
MÉTODOS NUMÉRICOS
Método de bisección
Método de bisección: Aproximación de raíz >> pbisec
function y= fbisec(x); %No olvide los coeficientes del polinomio xm fm-------------------------
y = x .^ 4 - 10 .* x .^ 3+ 35 .* x .^ 2 + -50.* x +24; 0.650000 3.719756
% guarde la función arriba como .m “fbisec()” 0.925000 0.514438
1.062500 -0.333481
% La función abajo como .m es programa principal” 0.993750 0.037931
x1=.1; x2=1.2; 1.028125 -0.160182
disp(' xm fm') ] % xm es la media de x1 y x2, fm es f (xm) 1.010938 -0.064317
disp('-------------------------') % inserte linea 1.002344 -0.014002
for k=1:26; 0.998047 0.011761
f1=fbisec(x1); f2=fbisec(x2); 1.000195 -0.001171
xm=(x1+x2) / 2; fm=fbisec(xm); 0.999121 0.005282
fprintf('%9.6f %13.6f \n', xm,fm) % xm fm alineados; 0.999658 0.002052
if (f1*fm<0) 0.999927 0.000440
x2=xm; 1.000061 -0.000366
else 0.999994 0.000037
x1=xm; 1.000027 -0.000165
end 1.000011 -0.000064
end
MÉTODOS NUMÉRICOS
Método de bisección
Método de bisección: Aproximación de raíz >> pbisectint
x1=.1; xm fm
disp(' xm fm') % xm es la media de x1 y x2, fm es f (xm) -------------------------
1.000000 -0.000000
disp('-------------------------') % inserte linea
1.000000 -0.000000
for k2=1:80; 1.000000 -0.000000
x2=1+k2/10; 1.000000 -0.000000
if (fm^2 <.000001) 1.000000 -0.000000
fprintf('%9.6f %13.6f \n', xm,fm) % xm fm alineados; 1.000000 -0.000000
end 1.000000 -0.000000
for k=1:26; 1.000000 -0.000000
2.000000 -0.000000
f1=fbisec(x1); f2=fbisec(x2);
3.000000 0.000000
xm=(x1+x2) / 2; fm=fbisec(xm); 3.000000 -0.000000
if (f1*f2<0) 3.000000 -0.000000
if (f1*fm<0) 3.000000 -0.000000
x2=xm; 3.000000 -0.000000
else 3.000000 -0.000000
x1=xm; 3.000000 -0.000000
3.000000 -0.000000
end
3.000000 -0.000000
end 4.000000 -0.000000
end
end