Bonjour !!
Je précise que je suis encore débutant sous Matlab.
La fonction Parabolic a cette forme :
Il est dit ici (http://www-rohan.sdsu.edu/doc/matlab.../assempde.html) que le coefficient "c" peut être une matrice 2par2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part u1=parabolic(u0,tlist,b,p,e,t,c,a,f,d)
Voici mon code :
Impossible de le lancer. Le message d'erreur est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [p,e,t]=initmesh('squareg'); [p,e,t]=refinemesh('squareg',p,e,t); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4); u0(ix)=ones(size(ix)); tlist=linspace(0,0.1,20); c=[1 2; 3 4]; f=10; u1=parabolic(u0,tlist,'squareb1',p,e,t,c,0,f,1); pdeplot(p,e,t,'xydata',u1(:,end))
Pourquoi y a t-il un probleme de taille de matrices ? Je suis en D=2 dimension, donc le gradient est juste un vecteur colonne avec 2 lignes, et 'c' est une matrice 2par2 dans mon code. Je ne vois pas le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ??? Error using ==> times Matrix dimensions must agree. Error in ==> pdeasmc at 18 c3=((cc1.*g1x.*g2x+cc2.*g1y.*g2y).*ar); Error in ==> assema at 112 ks1=pdeasmc(it1,it2,it3,np,ar,x,y,sd,u,ux,uy,time,g1x,g1y,g2x,g2y,g3x,g3y,c); Error in ==> parabolic at 85 [K,M,F]=assema(p,t,c,a,f,time); Error in ==> ex_parab at 9
Merci pour votre aide !
Partager