Je dois programmer la solution analytique pour un système thermique en c++.
Et j ai un soucis, pour calculer mon coefficient x.
La formule pour déterminer x est la suivante :
h, R et lamda sont constant.
Je pense passer par un développement en série mais si quelqu un a une autre solution à me proposer, je suis preneur.
Merci;
Posted by: JJa
Bonjour,
En pratique, la résolution de l'équation tan(x)=b*x (avec b donné) se fait par calcul numérique. Les méthodes générales sont nombreuses. L'une des plus connues est la méthode de Newton-Raphson.
Un autre méthode (non générale, spécifique de cette équation) est la suivante :
Les racines de l'équation sont indicées par j
racine triviale x=0, non considérée.
Suite des racines positives : r_0, r_1, r_2, ..., r_j,...
(mêmes racines négatives)
Les données sont b (réel) et j (entier).
On calcule r, valeur numérique approchée de la racine indicée j.
q est une variable réelle.
:
r:=pi*j;
if r<>0 then goto 1;
if b<=1 then goto 1;
r:=pi/4;
1:
q:=r;
r:=arctan(b*r)+j*r;
if(abs(r-q)>1E-9) then goto 1;
write(r);
.
note : 1E-9 = 10^(-9) peut être adapté à la précision souhaitée.
.
Par exemple, pour tester:
Avec j=9 ; b=-1 ; on trouve r=26.740916...
Avec j=0 ; b=2 ; on trouve r=1.1655611...
Posted by: leolio
Bonjour,
je suis toujours avec mon problème de :
J ai implémenté la methode de de Newton–Raphson. Sauf que je cherche un ensemble de solutions pour cette équation et que pour l'instant ma méthode se bloque à chaque fois sur un minimum alors qu'il en existe plusieurs pour cette fonction.
Comment puis-je faire pour les déterminer ou pour que ma méthode ne se bloque juste sur un ?
merci
Posted by: JJa
Recommencer l'itération en partant chaque fois d'un différent x(initial)= x0+2*n*pi
Mais ce n'est pas évident de programmer une bonne valeur x0 de départ, selon la valeur de b.
Pour avoir les racines successives d'une façon fiable, je conseillerais plutôt le petit algorithme donné dans mon message précédent, en le placant dans une boucle qui l'exécute avec successivement j=0, 1, 2, 3,... etc.
les valeurs sont fausse et je ne vois pas d ou cela vient si tu vois ou j ai fait une erreur en retranscrivant ton algo .?
Merci
Posted by: JJa
Salut,
je n'ai jamais eu de difficulté avec cet algorithme qui est très fiable.
Je t'envoie une copie du listing par message privé car je n'arrive pas à la joindre ici.