Forum: PC-Programmierung Expertensystem zum Plotten eines Gleichungssystems nach einer Variable


von Experte (Gast)


Lesenswert?

Hallo,

ich habe mehrere Gleichungen f1,f2,f3,...fk mit mehreren abhäniggen 
Variablen fk(x1,x2,x3...). Ich möchte jetzt eine Gleichung in 
Abhänigkeit eines Parameters plotten, dabei sind die anderen Parameter 
konstant vorgegeben. D.h. in Summe ist die Lösung eindeutig.

Allerdings möchte ich jetzt nicht händisch alle Formeln umstellen und 
einsetzen sondern lieber alle Formeln definieren, die 
nicht-zu-verändernden Parameter vorgeben und dan am liebsten eine 
Funktion in Abhängikeit der noch übrigen einen Variable plotten.

Als Ergänzung möchte ich dann nich nur eine variable als Parameter 
sondenr z.b. 2 und dann ein 3D Plot machen.

Mit welchem Tool kann man das am einfachsten machen? Matlab?
Am liebsten soll es dann aus mehreren gleichungen auch noch die 
analythische lösung nach der gesuchten Größe ausspucken.


Danke

von Franz F. (franzman)


Lesenswert?

Ich hätte dir jetzt auch MATLAB vorgeschlagen, unabhängig davon dass du 
es unten selbst erwähnt hast.
Wenn das Budget nicht vorhanden ist, könntest du auch Octave oder 
Scilabs verwenden.
Ansonsten könntest du dir auch mal Mathematica anschauen.

von Experte (Gast)


Lesenswert?

Franz F. schrieb:
> Ich hätte dir jetzt auch MATLAB vorgeschlagen, unabhängig davon dass du
> es unten selbst erwähnt hast.

Matlab ist vorhanden, steh aber auf dem Schlauch. Hab mit syms + solve 
rumprobiert.

von Franz F. (franzman)


Lesenswert?

Ich hab grad einen Ausschnitt gefunden, der eine Differenztialgleichung 
löst.
1
u_c = dsolve('Du_c + u_c / tau = u_e / tau', 'u_c(0) = 0', 't');    %Differentialgleichung lösen
2
u_c = subs(u_c);                                                    %Symbolische Konstanten ersetzen
3
double(u_c);                                                        %Typecast auf double
4
i = (u_e-u_c)/(R1+R2);
5
u_1 = i*R1;
6
u_2 = i*R2;
7
u_a = u_1+u_c;

Mit solve sollte es nicht viel anders gehen

von dadada (Gast)


Lesenswert?

Wenn es eher analytisch ist, nutz Maple, sonst ist Matlab voll ok ;-) 
Definiere einfach deine Funktion, setze die PArameter fest die du kennst 
und lasse dir die restlichen Funktionswerte in einer Schleife über den 
Bereich berechnen der dich interessiert und danach plotten.

Ja, Matlab kann auch symbolische Gleichungen handhaben, aber so ganz 
dafür gedacht ist es doch nicht... Wenn sich dein Problem mit obiger 
Methode erschlagen lässt ist das zwar quick&dirty aber funktioniert

von Experte (Gast)


Lesenswert?

Danke, habs hinbekommen.
Vorgehen (es folgt ein sinnfreies beispiel)
1. definieren der Variablen
syms y2 x eta
2. vorgeben bekannter größen, bzw. sweep der zu untersuchenden variable
a = 5
b = 5   (oder b = 1, 2, 3 ... nacheinander)
3. Definieren von allen Gleichungen als :
eqn1 = y2 == 1+3x+5*sin(eta*a+b)
eqn2 = ...
eqn3 = ...
4. lösen lassen
S = solve(eqn1,eqn2,eqn3...)
5. gesuchten wert plotten, wert steckt z.B. in
S.x

Momemtan ist die Lösung noch nicht ganz optimal, da für ein sweep 
jedesmal das komplette gleichungssystem neu gelöst wird ;-)

von Pandur S. (jetztnicht)


Lesenswert?

>Momemtan ist die Lösung noch nicht ganz optimal, da für ein sweep
jedesmal das komplette gleichungssystem neu gelöst wird ;-)


Der Standardansatz fuer ein lineares System ist hier mit Mathe 
dahinterzugehen. Ist das System ueberbestimmt, macht man Fits umd die 
Anzahl Variablen zu minimieren.
Und wenn die Variablenanzahl minimal ist, kann man diagonalisieren, um 
die Zusammenhaenge zu entflechten.

Ich kenn Systeme, da loest man fuer jeden Punkt eines Graphen iterativ 
ein Integral und minimiert das Integral nach einem Parameter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.