Fonction fminsearch, Matlab !
Publié : lundi 03 mars 2014, 16:09
Bonjour à tous !
EDIT : Après avoir cherché et avoir essayé sur Matlab, je rencontre un nouveau problème (je ne dois vraiment pas comprendre comment marche fminsearch ...).
Voici le code que j'entre :
Où la fonction fa est la suivante : (fichier fa.m dans le même répertoire)
En gros, ce que je veux c'est tracer la fonction fa (retournée dans la variable z) en fonction de k pour différents omega, et trouver la valeur de k correspondant au minimum de la fonction à chaque fois. Malheureusement, Matlab me renvois l'erreur suivante :
"Subscripted assignment dimension mismatch.
Error in fminsearch (line 191)
fv(:,1) = funfcn(x,varargin{:});"
Je comprends qu'il y a un problème dans la taille de mon vecteur k mais je ne comprends pas d'où ça vient ...
Si jamais quelqu'un n'aurait ne serait-ce qu'une petite idée d'où pourrait provenir le problème je le remercie bien fort
EDIT : Après avoir cherché et avoir essayé sur Matlab, je rencontre un nouveau problème (je ne dois vraiment pas comprendre comment marche fminsearch ...).
Voici le code que j'entre :
Code : Tout sélectionner
clear all;
close all;
k= 0.1 : 0.1 : 1000;
f = 10^6;
omega = 2*pi*f;
Xa = fminsearch(@(k) fa(omega,k),[0;0]);
Code : Tout sélectionner
function z = fa(omega,k)
rho = 903;
mu = 36*10^6;
lambda = 1.95*10^3*10^6;
nu = 0.491;
E = 107.3*10^6;
h = 10^-2;
cL = sqrt((lambda + 2*mu)/rho);
cT = sqrt(E*(1-nu)/(rho*(nu+1)*(1-2*nu)));
OMEGA = omega*h/cT;
KSI = k*h;
x = sqrt(OMEGA^2-KSI.^2);
y = sqrt(OMEGA^2*(cT/cL)^2-KSI.^2);
z = (KSI.^2-x.^2).^2.*sin(y).*cos(x)+4.*x.*y.*KSI.^2.*cos(x).*sin(y);
end
"Subscripted assignment dimension mismatch.
Error in fminsearch (line 191)
fv(:,1) = funfcn(x,varargin{:});"
Je comprends qu'il y a un problème dans la taille de mon vecteur k mais je ne comprends pas d'où ça vient ...
Si jamais quelqu'un n'aurait ne serait-ce qu'une petite idée d'où pourrait provenir le problème je le remercie bien fort