Aidez moi SVP , réaliser 2 boucles pour méthode de newton
Résolu
the cameleon
Messages postés
358
Date d'inscription
Statut
Membre
Dernière intervention
-
Krys_06 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Krys_06 Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
svp j'ai cette équation que je doit résoudre avec la méthode de Newton-Raphson sous MATLAB :
f(I)=Icc-I-Is*{exp[q*(V+Rs*I/nkt)]-1}
Icc,Is,q,Rs,n,k,t --> des constantes
I et V --> des variable
je cherche I , pour chaque valeur de V sachant que V varie de 0 à 0.6
il me faut donc deux boucle ( 2 fort ) ou bien ( 2 while )
merci d'avance pour votre aide
svp j'ai cette équation que je doit résoudre avec la méthode de Newton-Raphson sous MATLAB :
f(I)=Icc-I-Is*{exp[q*(V+Rs*I/nkt)]-1}
Icc,Is,q,Rs,n,k,t --> des constantes
I et V --> des variable
je cherche I , pour chaque valeur de V sachant que V varie de 0 à 0.6
il me faut donc deux boucle ( 2 fort ) ou bien ( 2 while )
merci d'avance pour votre aide
A voir également:
- Aidez moi SVP , réaliser 2 boucles pour méthode de newton
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
6 réponses
Ton problème n'est pas compréhensible (en tout cas par moi).
"je cherche I , pour chaque valeur de V sachant que V varie de 0 à 0.6" => mais pour que f(I) fasse quoi: 0????
Si c'est le cas, utilise fzero.
Si c'est un exercice, je ne vais pas le faire à ta place.
"je cherche I , pour chaque valeur de V sachant que V varie de 0 à 0.6" => mais pour que f(I) fasse quoi: 0????
Si c'est le cas, utilise fzero.
Si c'est un exercice, je ne vais pas le faire à ta place.
Bonjour,
pourquoi ce n'est pas comprehnsible !!!!!!! ?
il s'agit d'une fonction de la caracteristique électrique d'une cellule photovoltaique en fonctionnement normal ; et je cherche a tracer le graphe I=f(V)
je ne sais juste pas comment l'ecrire sur matlan, car j'ai aucune base !!
pour V=0
et pour I=0
je résous I = .... avec newton raphson
ensuite pour V=0.1 ( par exemple )
et pour I= quelque chose
je résous ..... ( avec newton raphson )
.
.
.
.
.
pour V=07
et pour I=2
je trouve I
et la fin e trace
je ne sais pas comment le mettre sur matlab ,
et ce n'est pas un exercice !!! je prépare une these et je rencontre cette difficulté ! je demande de l'aide !
pourquoi ce n'est pas comprehnsible !!!!!!! ?
il s'agit d'une fonction de la caracteristique électrique d'une cellule photovoltaique en fonctionnement normal ; et je cherche a tracer le graphe I=f(V)
je ne sais juste pas comment l'ecrire sur matlan, car j'ai aucune base !!
pour V=0
et pour I=0
je résous I = .... avec newton raphson
ensuite pour V=0.1 ( par exemple )
et pour I= quelque chose
je résous ..... ( avec newton raphson )
.
.
.
.
.
pour V=07
et pour I=2
je trouve I
et la fin e trace
je ne sais pas comment le mettre sur matlab ,
et ce n'est pas un exercice !!! je prépare une these et je rencontre cette difficulté ! je demande de l'aide !
Je vais te dire ce qui n'est pas clair.
Tu parles de f(I) mais en fait, tu as 2 variables: I et V donc c'est plutôt f(I, V)
Tu demandes à trouver I en fonction de V mais sans dire pour quelle valeur de f(I, V). Car chercher I pour un V donné tel que f(I, V) = 10, ce n'est pas la même chose que pour f(I, V) = -50...
Ensuite, tu ajoutes: "
pour V=0
et pour I=0
je résous I = .... avec newton raphson"
Spontanément, j'ai envie de te dire... benh I = 0!
Et je peux même généraliser: pour V=a et I=b, je peux te dire que I=b...
Bref, lisons entre les lignes.
Tu cherches en gros (I, V) tel que f(I, V) = 0? En très résumé, le front de pareto de abs(f(I, V))?
En attendant, je ne sais pas pourquoi tu t'obstines avec ta méthode de Newton alors que si tu utilises Matlab en tant qu'outil, ils disposent de fonctions déjà codées pour te trouver les zéros d'une fonction!
Donc:
V = 0:step:10; % je ne sais pas entre quoi et quoi tu fais varier V
for idx = 1:numel(V)
I(idx) fzero(@(I), Icc - I - exp(... V(idx) ...), I0);
end;
En tout cas, j'espère que ton mémoire de thèse sera plus clair que tes questions sur ce forum.
Tu parles de f(I) mais en fait, tu as 2 variables: I et V donc c'est plutôt f(I, V)
Tu demandes à trouver I en fonction de V mais sans dire pour quelle valeur de f(I, V). Car chercher I pour un V donné tel que f(I, V) = 10, ce n'est pas la même chose que pour f(I, V) = -50...
Ensuite, tu ajoutes: "
pour V=0
et pour I=0
je résous I = .... avec newton raphson"
Spontanément, j'ai envie de te dire... benh I = 0!
Et je peux même généraliser: pour V=a et I=b, je peux te dire que I=b...
Bref, lisons entre les lignes.
Tu cherches en gros (I, V) tel que f(I, V) = 0? En très résumé, le front de pareto de abs(f(I, V))?
En attendant, je ne sais pas pourquoi tu t'obstines avec ta méthode de Newton alors que si tu utilises Matlab en tant qu'outil, ils disposent de fonctions déjà codées pour te trouver les zéros d'une fonction!
Donc:
V = 0:step:10; % je ne sais pas entre quoi et quoi tu fais varier V
for idx = 1:numel(V)
I(idx) fzero(@(I), Icc - I - exp(... V(idx) ...), I0);
end;
En tout cas, j'espère que ton mémoire de thèse sera plus clair que tes questions sur ce forum.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pas claire ! peut etre que je me suis mal exprime !
pourquoi je m'obstine ? par ce que c'est de ça dont j'ai besoin !!! tu peut comprendre ?
sinon je propose la solution un jour ça pourra servir !
%%Constantes
Icc=2.000;
Is=1e-6;
q=1.6e-19;
Rs=0.005;
a=2;
k=1.38e-23;
t=300;
eps=0.0001;
%%parametres de l'algorithme
I=0;
V=0;
pas=0.7/100;
for i=1:100;
for j=1:5000
Ip=I;
fI=Icc-I-Is*(exp(q*(V+Rs*I)/(a*k*t))-1);
fII=-1-Is*(q*Rs/(a*k*t))*(exp(q*(V+Rs*I)/(a*k*t)));
I=I-(fI/fII);
if (abs(I-Ip))<eps;
break
end
end
courant(i)=I;
tension(i)=V;
V=V+pas;
end
plot(tension,courant)
title('I en fonction de V');
xlabel('V [V]');
ylabel('I[A]');
pourquoi je m'obstine ? par ce que c'est de ça dont j'ai besoin !!! tu peut comprendre ?
sinon je propose la solution un jour ça pourra servir !
%%Constantes
Icc=2.000;
Is=1e-6;
q=1.6e-19;
Rs=0.005;
a=2;
k=1.38e-23;
t=300;
eps=0.0001;
%%parametres de l'algorithme
I=0;
V=0;
pas=0.7/100;
for i=1:100;
for j=1:5000
Ip=I;
fI=Icc-I-Is*(exp(q*(V+Rs*I)/(a*k*t))-1);
fII=-1-Is*(q*Rs/(a*k*t))*(exp(q*(V+Rs*I)/(a*k*t)));
I=I-(fI/fII);
if (abs(I-Ip))<eps;
break
end
end
courant(i)=I;
tension(i)=V;
V=V+pas;
end
plot(tension,courant)
title('I en fonction de V');
xlabel('V [V]');
ylabel('I[A]');
T'es trop fort...
Enfin faudra quand même que tu m'expliques pourquoi tu t'accroches autant à ta méthode de Newton... A se demander si c'est le but de ta thèse de la coder...
Allez, tu peux même faire plus beaucoup plus propre avec des fonctions anonymes pour définir f et sa dérivée mais ça, c'est en 2ème année de thèse, entre la page 100 et 140 du mémoire.
Enfin faudra quand même que tu m'expliques pourquoi tu t'accroches autant à ta méthode de Newton... A se demander si c'est le but de ta thèse de la coder...
Allez, tu peux même faire plus beaucoup plus propre avec des fonctions anonymes pour définir f et sa dérivée mais ça, c'est en 2ème année de thèse, entre la page 100 et 140 du mémoire.
cependant je rencontre un autre petit problème , je pense que vous pourriez quand meme m'aider la dessus
sur la figure obtenu , et sur l'axe Y donc (I) , la première valeur concide avec le zéro ,
je souhaite qu'il y-est un pas entre le zero et la première valeur de (I)
et ça meme si je change les données
merci
sur la figure obtenu , et sur l'axe Y donc (I) , la première valeur concide avec le zéro ,
je souhaite qu'il y-est un pas entre le zero et la première valeur de (I)
et ça meme si je change les données
merci