2010-11-30 16 views

Antwort

0

müssen Sie Matlab sagen, dass c, eq1, eq2, a, j (ist das nicht komplex?), Und b sind eine symbolische Variablen. d.h., verwende den Befehl "syms a b c j eq1 eq2". Dann definiere alles wie oben, abzüglich der einfachen Anführungszeichen (das ist eine Zeichenkette!).

dann können Sie einfach die 'lösen (eq2,' Variable, die Sie lösen wollen '). Leicht genug.

2

Matlab ist verkorkst, aber die Syntax ist

sol = solve(eq1,x1,eq2,x2,..); 

Es würde mehr Sinn machen, um es solve({eq1,eq2,..},{x1,x2,..}) aber nein, wir haben die Argumente alle eins nach dem anderen zu schreiben.

Der Trick ist, dass eq1, eq2, .. sind symbolische Ausdrücke, die auf Null ausgewertet werden müssen. Anstatt also c = a/10j braucht es eq1=sym('c-a/10j')

So werden diese versuchen:

eq1 = sym('c - a/(10*i)'); % must evaluate to zero 
eq2 = sym('(6*b)/50 + b/(10*i) -(a/(10*i) + a/10)'); %must evaluate to zero 

sol = solve(eq1,'a',eq2,'b'); 

a = subs(sol.a,'c',3.06+2.57j) 
b = subs(sol.b,'c',3.06+2.57j) 

produziert a= -25.7000 +30.6000i und b=-20.6639 +29.6967i.

Beachten Sie, dass symbolische Funktionen 10j nicht verstehen. Es muss 10*i sein. Auch die Notation 6b fehlt ein Operator und muss 6*b sein.

Viel Glück!


Da das Problem linear ist es eine andere Möglichkeit ist, es zu lösen

equs = [eq1;eq2]; 
vars = [sym('a');sym('b')]; 
A = jacobian(equs,vars); 
b = A*vars - equs; 

x = A\b; 
c = 3.06+2.57j; 
sol = subs(x,'c',c) 

mit Ergebnissen

sol = 
-25.7000 +30.6000i 
-20.6639 +29.6967i 
+2

omg, es ist so einfach, setzen Sie Ihre Hausaufgaben nur auf Stackoverflow und die Leute werden geben Sie die Antwort mit Kommentaren auf der Platte – matcheek

+0

Ihre Beschwerde über die Syntax von [SOLVE] (http://www.mathworks.com/help/toolbox/symbolic/solve.html) macht keinen Sinn. Man kann es so nennen: 'sol = lösen (eq1, eq2, 'a', 'b');'. Verwenden Sie eine ältere Version von MATLAB? – gnovice

+0

Ich beschwere mich, weil MATLAB dem Mupad folgen und es zu 'sol = lösen (eqs, vars)' machen soll, wobei 'eqs' ein Vektor von Ausdrücken und 'vars' ein Vektor von Variablen ist. Auch wenn sie Zellvektoren sind. Wie würden Sie nun eine Solve-Anweisung schreiben, wenn Sie eine variable Anzahl von Gleichungen (und Variablen) für ein Problem haben? – ja72

Verwandte Themen