WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Gleichung nach zwei Variablen umstellen

 

stormtrupler
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.11.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2023, 22:50     Titel: Gleichung nach zwei Variablen umstellen
  Antworten mit Zitat      
Hallo,

Ich versuche gerade eine recht einfache Übung in Matlab zu schreiben um wieder etwas in das Thema rein zukommen. Ich hab die Aufgabe auf dem Blatt sprich per Hand wunderbar lösen können.

Jedoch verstehe ich ncht wie ich das in MatLab umsetztn kann. Ich denke da wahrscheinlich einfach zu kompliziert.. Very Happy

Also hier mal die Papier Lösung. Ich habe drei Gleichungen:

p1 = p0 + rho*g*h1 +rhom*g*deltah
p2 = pi + rho*g*h2
h1 = h2-deltah

Hab dann gleichgesetzt und komme am ende auf:

pi-po = g*deltah(rhom-rho) [Genau die Werte die gegeben sind stehen jetzt rechts, der Rest hat sich beim gleichsetzten gekürzt]

So nun wollte ich das von Matlab machen lassen aber ich komme ncht drauf wie ich das nach pi-p0 umstellen lassen kann.

Code:

% Deklaration der Variablen
syms  p_0  p_i
syms rho rho_m g delta_h h_1 h_2

% Gleichungen
p_1 = p_0 + rho*g*h_1 + rho_m*g*delta_h
p_2 = p_i + rho*g*h_2
h_1 = h_2 - delta_h

% Gleichungen lösen

Test=[p_1,p_2]
p_1=eval(Test(1))
p_2=eval(Test(2))

glg = p_1 == p_2
pi_p0 = solve(glg,[p_i-p_0])
 


Ich dachte ich probier es einfach mal mit solve und gebe ein er soll nach p_i-p_0 umstellen aber das will er nicht machen bzw dann kommt ein leeres struct with fields raus.

Muss ich da irgendwo noch einen zwischen Schritt oder ähnliches einbauen? Ich sehe es schon vor mir das die Lösung etwas einfaches und total triviales ist.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.453
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.11.2023, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

ich wüsste nicht, wie man direkt nach einer Differenz auflösen kann. Man könnte aber die Gleichungen jeweils auflösen, dann die Differenz berechnen, und die dritte Gleichung einsetzen. p_2 - p_1 bleibt dann aber doch stehen?

Code:
syms  p_0  p_i  p_1 p_2
syms rho rho_m g delta_h h_1 h_2

% Gleichungen
p_0sol = solve(p_1 == p_0 + rho*g*h_1 + rho_m*g*delta_h, p_0);
p_isol = solve(p_2 == p_i + rho*g*h_2, p_i);

p_diff = p_isol - p_0sol;
p_diff = simplify(subs(p_diff, h_1, h_2 - delta_h))


Ergebnis:
p_2 - p_1 - delta_h*g*rho + delta_h*g*rho_m

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
stormtrupler
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.11.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2023, 17:05     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

ich wüsste nicht, wie man direkt nach einer Differenz auflösen kann. Man könnte aber die Gleichungen jeweils auflösen, dann die Differenz berechnen, und die dritte Gleichung einsetzen. p_2 - p_1 bleibt dann aber doch stehen?

Code:
syms  p_0  p_i  p_1 p_2
syms rho rho_m g delta_h h_1 h_2

% Gleichungen
p_0sol = solve(p_1 == p_0 + rho*g*h_1 + rho_m*g*delta_h, p_0);
p_isol = solve(p_2 == p_i + rho*g*h_2, p_i);

p_diff = p_isol - p_0sol;
p_diff = simplify(subs(p_diff, h_1, h_2 - delta_h))


Ergebnis:
p_2 - p_1 - delta_h*g*rho + delta_h*g*rho_m

Grüße,
Harald


Hallo,

Erstmal vielen dank für die Antwort. p_1 == p_2. Also die Drücke p1 und p2 sind gleich groß. Wenn ich zahlen Werte in deine Lösung einsetzte kommt das richtige ergebniss raus nur p_2-p_1 muss ich irgendwie noch entfernen.

Ich hätte echt nicht gedacht das es so komisch ist eine recht einfache aufgabe mit Matlab zu lösen Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.453
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.12.2023, 19:00     Titel:
  Antworten mit Zitat      
Hallo,

du kannst ja noch mit subs p1 durch p2 ersetzen.

Ich will nicht ausschließen, dass es nicht einfacher geht, nur weiß ich wenn nicht wie. :)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.