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
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
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
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