Pb graph 3D de la banana function sous Matlab
Superchichi
-
superchichi -
superchichi -
Bonjour,
Je voudrais afficher la fonction de Rosenbrock (appelé aussi Banana fonction) en 3D mais le pb c'est qu'il ne m'affiche un graph qui corespond a la fonction, j'obtiens un pauvre plan incliné au lieu d'une belle vallée en forme de banane! L'expression de la fonction est pourtant juste. Je m'explique :
Je créé ma grille :
[X,Y] = meshgrid(-2:2:2, -2:2:2);
X =
-2 0 2
-2 0 2
-2 0 2
Y =
-2 -2 -2
0 0 0
2 2 2
je créé ma matrice
>> Z=((X-1)^2)+100*(((X^2)-Y)^2)
et j'obtiens:
Z =
9 3 -3
9 3 -3
9 3 -3
alors que si x=-2,y=-2 f(x,y)=3609 ! Normalement je devrais obtenir :
Z=
3609 1 401
3609 1 401
3609 1 401
Je precise que sa fonctionne impecable avec d'autre fonction.
Donc voila c'est surement une broutille mais sa ne me saute pas aux yeux et je n'ai plus aucunes idées pour
résoudre ce problème.
Merci d'avance
Je voudrais afficher la fonction de Rosenbrock (appelé aussi Banana fonction) en 3D mais le pb c'est qu'il ne m'affiche un graph qui corespond a la fonction, j'obtiens un pauvre plan incliné au lieu d'une belle vallée en forme de banane! L'expression de la fonction est pourtant juste. Je m'explique :
Je créé ma grille :
[X,Y] = meshgrid(-2:2:2, -2:2:2);
X =
-2 0 2
-2 0 2
-2 0 2
Y =
-2 -2 -2
0 0 0
2 2 2
je créé ma matrice
>> Z=((X-1)^2)+100*(((X^2)-Y)^2)
et j'obtiens:
Z =
9 3 -3
9 3 -3
9 3 -3
alors que si x=-2,y=-2 f(x,y)=3609 ! Normalement je devrais obtenir :
Z=
3609 1 401
3609 1 401
3609 1 401
Je precise que sa fonctionne impecable avec d'autre fonction.
Donc voila c'est surement une broutille mais sa ne me saute pas aux yeux et je n'ai plus aucunes idées pour
résoudre ce problème.
Merci d'avance
A voir également:
- Pb graph 3D de la banana function sous Matlab
- Architecte 3d gratuit - Télécharger - Architecture & Déco
- 3d slash - Télécharger - 3D
- Paint 3d mac - Télécharger - Dessin & Illustration
- Smartshow 3d - Télécharger - Visionnage & Diaporama
- Google maps satellite 3d - Guide
1 réponse
Ca y est problème résolue, j'avais oublié les points derrières les matrices dans l'expression de la function, en effet on ne manipule pas des matrices mais leurs termes independement les uns des autres donc la bonne expression est:
Z=((X-1).^2)+100*(((X.^2)-Y).^2);
par example A.*B permet de dire que je multiplie chaques termes de de la matrice A par son terme corespondant de la matrice B.
C'était donc normal d'avoir une matrice avec des termes négatifs car le carré d'une matrice n'est pas le carré des termes! oups oublie fatal qui me vaudrais de me faire tirer les oreils par les profs de math.
Voila sûre ce bonne programmation!
Z=((X-1).^2)+100*(((X.^2)-Y).^2);
par example A.*B permet de dire que je multiplie chaques termes de de la matrice A par son terme corespondant de la matrice B.
C'était donc normal d'avoir une matrice avec des termes négatifs car le carré d'une matrice n'est pas le carré des termes! oups oublie fatal qui me vaudrais de me faire tirer les oreils par les profs de math.
Voila sûre ce bonne programmation!