bonjour à tous,
J'aimerai résoudre un sytème d'équation avec Matlab, en utilsant la fonction solve dans une boucle for. Voici mon code:
quand j'essaie de l'executer, j'obtiens l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 str=''; equations={}; system=[]; %Je crée d#abord le vecteur [c1,c2,c3,c4] que j'appelle sol for k=1:4 c=sprintf('c%s',num2str(k)); str=[str strcat(c,',')]; end str=regexprep(str,',$',''); sol=strcat('[',str,']'); %écrire les equations et les stocker dans une cell equations for i=1:3 c1=sprintf('c%s',num2str(i)); c2=sprintf('c%s',num2str(i+1)); eq=strcat(c1,'+2*',c2,'=3*',num2str(i)); equations=cat(1,equations,eq); end %Concaténer les equations dans un vecteur system for k=1:length(equations) system=[system strcat(equations{k},',')]; end sys=regexprep(sys,',$',''); %Resoudre le system eval(strcat(sol,'=solve(',sys,')'));
quand j'affiche ce qu'il y a entre les parenthèses de solve j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ??? Error: The expression to the left of the equals sign is not a valid target for an assignment. Error in ==> essaiSolve at 28 eval(strcat(sol,'=solve(',sys,')'));
donc mon système est bien défini, sauf que solve ne peut pas marcher parcequ'il manque des apostrophes à ces argument.. Comment régler ce problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part [c1,c2,c3,c4]=solve(c1+2*c2=3*1,c2+2*c3=3*2,c3+2*c4=3*3)
merci
Partager