Newton

Fermé
othmane - 1 avril 2012 à 20:07
Bonjour,
je fais le programme suivante pour calculer I par la méthode de newton mais je ne trouve pas le résultats correct .
clear all ;clc; close all
syms I;
%syms I0
%initialisation
vco=5.40;
v=5.4;
q=1.602*10^-19;%charge d'electrone
n=1;
Isc=44.
rs=0.02;
k=1.381*10^-23;% constant de beltzmen
T=298;%in kelvin =25c°
vt=k*T/q;
I0=Isc/exp((vco/vt)-1);
Id=I0*exp((v+rs*I/vt)-1);
Iph=Isc*(1/1000);

f=I-Iph-Id;
f1=VPA(diff(f,1,I))
f2=VPA(diff(f,2,I))
%newton

%x(1)=1;
eps=input('eps=');
I(1)=input('I(1)=');
k=1;

I(k+1)=I(k)-f1(I(k))/f2(I(k));
er=abs(I(k+1)-I(k));
while er>eps
k=k+1;
I(k+1)=I(k)-f1(I(k))/f2(I(k));
er=abs(I(k+1)-I(k));
end
f=In-Iph-Id
xopt=(x(k+1))
fopt=f(x(k+1))