Aidez moi SVP , réaliser 2 boucles pour méthode de newton

Résolu
the cameleon Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   -  
Krys_06 Messages postés 27 Statut Membre -
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

6 réponses

  1. the cameleon Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   26
     
    ya til quelqu'un qui peu m'aider svp ??
    0
  2. Krys_06 Messages postés 27 Statut Membre
     
    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.
    0
  3. the cameleon Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   26
     
    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 !
    0
  4. Krys_06 Messages postés 27 Statut Membre
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. the cameleon Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   26
     
    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]');
    0
    1. Krys_06 Messages postés 27 Statut Membre
       
      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.
      0
  7. the cameleon Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   26
     
    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
    0