Matlab - Bucle con MATLAB

 
Vista:

Bucle con MATLAB

Publicado por Guillem (1 intervención) el 04/03/2008 18:29:27
Hola!
Necesito una ayudita con la programacion en lenguage Matlab. La cosa es que tengo que calcular (o deberia obtener como resultado) un vector (el z de 12 componentes) del cual conozco el primer elemento (z(1)). El resto los he de calcular como cero de una funcion f (factual = (x(1)+x(2))/96.231728-log((96.231728+x(1))/(96.231728-x(2)))) medinate el metodo de newton. No se si me podeis ayudar...
Aqui debajo incluyo lo que he intentado programar yo para que pueda verse por donde van los tiros (aunque no se si es suficientemente bueno).

Gracias

%Creamos los vectores que nos permitiran dibujar la evolucion de las iteraciones
x=[ ]
z=zeros(1,11)

z(1)=22.2591

for i=1:11

%Definicion de las variables

it=0; z(1)=22.2591;
tolz=0.5*10^(-8);
tolf=0.5*10^(-8);
itmax=50;
errz=1;errf=1;

%metodo de Newton

zactual=z(i); factual=f(zactual); dfactual=df(zactual);znuevo=0.;

while (errz>(tolz*abs(znuevo)) | errf>tolf)

znuevo=zactual-factual/dfactual
fnuevo=f(znuevo); dfnuevo=df(znuevo);
errz=abs(zactual-znuevo); errf=abs(factual);
z(it+1)=log10(errx);
x(it+1)=it+1;
if it>itmax
break
end

it=it+1;

zactual=znuevo; factual=fnuevo; dfactual=dfnuevo;
z(i+2)=z(i+1)
z(i+1)=z(i+2)
end

end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder