Cuenta

Solo disponible en BuenasTareas
  • Páginas : 5 (1184 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de febrero de 2012
Leer documento completo
Vista previa del texto
1.Recordando el ejercicio planteado en clase para implementar el método de la secante, construya el código para el método recordando que el método esta dado por:

Solución
function a =secante(fun,x0,x1,tol,maxiter)
syms x
% Aproxima por el método de la secante una raiz de la ecuacion fun(x)=0
%cercana a x0, tomando como criterio de parada abs(fun(x))<tol o la cota sobre
%el numero deiteraciones dada por maxiter.
%
% Variables de entrada:
% fun: funcion a calcular la raiz, se introduce en modo simbolico 'fun'
% x0, x1: estimaciones iniciales para el proceso de iteración
% tol: tolerancia en error absoluto para la raiz
% maxiter: maximo numero de iteraciones permitidas
%
% Variables de salida:
% a: valor aproximado de la raiz

fun=input('Introduzca la funcion aanalizar');
x0=input('Introduzca el valor inicial');
x1=input('Introduzca el siguiente valor');
tol=input('Introduzca el valor de la tolerancia');
maxiter=input('Introduzca el numero maximo de iteraciones');

fprintf(1, 'Metodo de la secante \n');
f0=subs(fun,x0);
f1=subs(fun,x1);
iter=1;

while(abs(f1)>tol) & (iter<maxiter)
a = x1-f1*((x1-x0)/(f1-f0)); % formula de iteracionf0=f1; f1=subs(fun,a); %Actualiza f0 y f1
fprintf(1, 'iter= %i, a= %x0,f= %e \n', iter,a ,f1)
iter = iter + 1; % Cuenta los pasos
x0=x1; x1=a; % actualiza x
end

ezplot(fun);

% Salida
Halle la solución para la siguiente función, utilizando al menos dos métodos numéricos(comparé los resultados):

clc
clear all
syms x
format long;
xo= input('digite el punto inicial \n');
tol=input('digite el valor de la tolerancia \n');
numero=input('digite el numero de iteraciones deseadas \n');
k=numero-1;
deltax=0;
tabla=ones(numero,4);

while (abs(deltax)< tol);
for i=0:1:k;
x=(((667.38)/(x))*(1-(exp(-0.146843*x))))-40 ;
deltax=x-xo;
tabla(i+1,1)=i;
tabla(i+1,2)=xo;
xo=x;
tabla(i+1,3)=x;
tabla(i+1,4)=deltax;
end

end

fprintf('\n\n');disp(' k xo x delta x ');fprintf('\n');
disp(tabla);

u = inline('x','x');
ezplot('x',[-2,2]);
u = inline('(((667.38)/(x))*(1-(exp(-0.146843*x))))-40','x');
hold on
ezplot('(((667.38)/(x))*(1-(exp(-0.146843*x))))-40',[-2,2]);
grid on

Realice una implementación del método de Bairstow y halle las raíces de la siguiente
función f5(x) = x5 - 3.5x4 + 2.75x3 + 2.125x2 - 3.875x + 1.25, .considere r0 = -1 y s0 = -1.*
* close all
clear
clc

z=input ('TECLEE LOS COEFICIENTES DEL POLINOMIO ENTRE CORCHETES:\n');
cont=1
for i=-1:0.1:2.5
x(cont)=i;
cont=cont+1;
end

n=length(z);% define la longitud de la ecuación
y=0
for i=1:n
y=y+z(i)*(x.^(n-i));

end

y
figure
plot(x,y,'r'),grid, title('GRAFICA DEL POLINOMIO')

it=0;% contador de iteraciones

limit_it=1000;% limite de iteracionestol=.0001;%tolerancia de la estimación

raiz(1:n-1)=0;

ri=0;

r=2;% el valor de r que es el coeficiente de primer grado

s=2;% el valor de s que es el termino independiente

err=1;%se inicializa el valor del error en r igual a 1

ers=1;%se inicializa el valor del error en s igual a 1

if z(1)==0

fprintf('EL PRIMER COEFICIENTE NO DEBE SER CERO:\n\n')

break

end

while1%ciclo que nos permitira ir evaluando las raÃces del polinomio

if (n-1>=3);else break,end%condicion si el grado de la raiz es mayor a 3

t=[1 r s];%esta es el polinomio cuadratico de inicio

it=it+1;%se incrementa en 1 la iteracion

[x,y]=deconv(z,t);%se divide la ecuacion entre el polinomio de inicio

length(x);%se define la longitud del polinomio resultante

length(y);%se definela longitud del residuo resultante

x=[x,0,0];%se ajusta la variable x para poder sumarla al residuo

x=[x+y];%suma del cociente mas residuo

c(1)=z(1);%valor de los coeficientes de la funcion a

c(2)=z(2)+(-r*c(1));%evaluar, en virtud de que el coeficiente de mayor

for i=3:n%grado sera equivalente al coeficiente de menor grado

m=n-i;%y en este ciclo se realiza la inversion de...
tracking img