בס"דBonjour,
Lorsque j'essaie d'appliquer un code dans Matlab, je reçois le message d'erreur suivant:
Error using *
Inner matrix dimensions must agree.
Error in euler (line 29)
miu ( n , : ) = miu ( n-1 , : ) + nu ( n-1 , : ) * dt ;
Semble annodin, mais j'ai essayé tout ce que je savais et n'ai pas trouvé comment arranger ça:
Ajouter un point devant * redonne le même message d'erreur;
n est défini comme suit: for n = 2 : length(t), il ne devrait donc pas y avoir de problème avec n-1 ;
Lorsque je mets whos miu, whos nu et whos dt, j'obtiens size = 8 x 101 pour les trois.
Je vous joins le code entier, si ça peut aider:
Et vous remercie d'avanceCode:function [unew,vnew] = euler (miu,nu) global t0 t N x u v fu fd fr fl gu gd gr gl ; t0 = ones ( N+2 , x+1 ) ; t = t0 : 10 * t0 ; dt = ( 10 * t0 - t0 ) / .1 ; miu = u ; nu = v ; for n = 2 : length(t) for i = 1 : N+1 for j = 1 : x v(i,j) = gradient ( u(i,j) , t ) ; h = [ v(i,j) fu(i,j) + fd(i,j) + fr(i,j) + fl(i,j) + gu(i,j) + gd(i,j) + gr(i,j) + gl(i,j) ] ; end end miu ( n , : ) = miu ( n-1 , : ) + nu ( n-1 , : ) * dt ; nu ( n , : ) = nu ( n-1 , : ) + h * dt ; end unew = miu ( n , : ) ; vnew = nu ( n , : ) ; end,
-----