Bonjour,
Au cours de mon projet j'ai rencontré des problèmes pour résoudre un système d'équations non linéaires sous matlab avec la méthode de Levenberg-Marquardt.
Merci d'avance.
Bonjour,
Au cours de mon projet j'ai rencontré des problèmes pour résoudre un système d'équations non linéaires sous matlab avec la méthode de Levenberg-Marquardt.
Merci d'avance.
Bonjour,
Qu'est-on censé te répondre avec ce peu d'information ?
on a un sujet de calibrage de camera (déterminer les paramétrés intrinsèque et extrinsèque) ce revient a résoudre un système d 'équation non linéaire avec avec 72 équation et 11 inconnue avec l algorithme levenberg-marquardt
pour la résolution on a essayé avec la fonction fsolve sur MATLAB mais ça ne donne rien si vous pouvez nous aider svp Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 Ud=(((X(1)*(cos(x1)*cos(x2)))+(((cos(x1)*sin(x2)*sin(x3))-(sin(x1)*cos(x3)))*Y(1))+(((cos(x1)*sin(x2)*cos(x3))+((sin(x1)*sin(x3)))*Z(1))+x4))/(((-sin(x2)*X(1))+(cos(x2)*sin(x3)*Y(1))+(cos(x2)*cos(x3))*Z(1))+x6))-((x7*(U(1)-x10)/x8)*((((U(1)-x10)/x8)^2)+((V(1)-x11)/x9)^2))-((U(1)-x10)/x8); Vd=((((sin(x1)*cos(x2)*X(1))+((sin(x1)*sin(x2)*sin(x3))+(cos(x1)*cos(x3)))*Y(1)+(((sin(x1)*sin(x2)*cos(x3))-(cos(x1)*sin(x3)))*Z(1))+x5))/((-sin(x2)*X(1))+(cos(x2)*sin(x3)*Y(1))+(cos(x2)*cos(x3)*Z(1))+x6))-((x7*(V(1)-x11)/x9)*((((U(1)-x10)/x8)^2)+((V(1)-x11)/x9)^2))-((V(1)-x11)/x9); F=[Ud; Vd]; for k22=2:36 ud=(((X(1)*(cos(x1)*cos(x2)))+(((cos(x1)*sin(x2)*sin(x3))-(sin(x1)*cos(x3)))*Y(1))+(((cos(x1)*sin(x2)*cos(x3))+((sin(x1)*sin(x3)))*Z(1))+x4))/(((-sin(x2)*X(1))+(cos(x2)*sin(x3)*Y(1))+(cos(x2)*cos(x3))*Z(1))+x6))-((x7*(U(1)-x10)/x8)*((((U(1)-x10)/x8)^2)+((V(1)-x11)/x9)^2))-((U(1)-x10)/x8); vd=((((sin(x1)*cos(x2)*X(1))+((sin(x1)*sin(x2)*sin(x3))+(cos(x1)*cos(x3)))*Y(1)+(((sin(x1)*sin(x2)*cos(x3))-(cos(x1)*sin(x3)))*Z(1))+x5))/((-sin(x2)*X(1))+(cos(x2)*sin(x3)*Y(1))+(cos(x2)*cos(x3)*Z(1))+x6))-((x7*(V(1)-x11)/x9)*((((U(1)-x10)/x8)^2)+((V(1)-x11)/x9)^2))-((V(1)-x11)/x9); F=[F;ud;vd] end
Et en plus on a les variables [X(i),Y(i),Z(i),U(i),V(i)],,,,,,,,, on a pris les valeurs initiales pour les variables [x1.......x11] donc notre problème :comment peut-on résoudre un système d'équations non linéaires à 11 inconnues [x1.....x11] avec la fonction F=(ud(k22);vd(k22)) pour k22=1:36 donc on 72 fonctions ;on résume le problème : on a F,et x0[x01.......x011] (vecteur initiale ) et le problème dans le vecteur X=[x1......x11], pouvez-vous nous aider svp,merci
Bonjour,
peux-tu nous montrer le code complet (avec fsolve)?
Pourquoi utilises-tu des variables symboliques? tu cherches une solution analytique ou numérique?
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
tu veux résoudre un système linéaire par levenberg marquardt ?
=> levenberg marquardt permet de minimiser des fonctions donc pas de resoudre directement un système.
=> Si tu veux résoudre le systeme Ax=b avec LVBM il faut que tu définisses le résidu : R=Ax-b qui est un vecteur et que tu minimise la somme quadratique de ces composantes.
regarde l'exemple en bas de cette page :
http://www.mathworks.fr/help/toolbox...lsqnonlin.html
C'est un bouquin de photogrammétrie qu'il te faut, pas un forum Matlab.
Et ça m'intéresserait de savoir dans quel cadre tu travailles. Parceque ce problème a déja reçu 1001 réponses toutes aussi pertinentes les unes que les autres, dont de nombreuses en open source. Donc je vois pas exactement l'intérêt de le reprogrammer ça aujourd'hui sous matlab.
"La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager