|
Izzzy |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.06.2013, 13:04
Titel: Gleichung lösen
|
|
Hallo Zusammen!
Ich würde gerne von Matlab eine Gleichung lösen lassen, die sich nicht analytisch lösen lässt. Ich bin relativ neu und weiss nicht so recht wie ich es angehen soll. Meine Gleichung sieht folgendermaßen aus:
r*t2/a*(((pt49-x)/p2)^a-1)-v1^2/2+r*t1/a*((p2/p1)^a-1)+x=0
Ich will x wissen, alle anderen Größen sind bekannt.
Sollte doch eigentlich mittels einem Solver lösbar sein?!
Ich bin dankbar für jede Hilfe!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.06.2013, 19:32
Titel:
|
|
Hallo,
das sollte mit FZERO oder FSOLVE gehen.
Grüße,
Harald
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.06.2013, 17:14
Titel:
|
|
Hallo! Erstmal danke für die Antowrt!
Ich habe den Teil nun folgendermaßen in Matlab eingegeben. Leider funktioniert es immer noch nicht. Es kommt der Fehler: Error using fzero (line 169)
If FUN is a MATLAB object, it must have an feval method.
syms x
fun=r_luft*t_a/a*(((pt_49-x)/p_a)^a-1)-v_e^2/2+r_luft*t_e/a*((p_a/p_e)^a-1)+x;
x0=50000;
z = fzero(fun,x0)
Kann mir nochmal jemand weiterhlefen?
Danke!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.06.2013, 18:56
Titel:
|
|
Hallo,
halte dich doch an die Doku. Da steht nirgends was von syms, dafür aber von Function Handles
Grüße,
Harald
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.06.2013, 10:02
Titel:
|
|
Vielen Dank! Mit fsolve hats funktioniert!
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.06.2013, 12:21
Titel:
|
|
Hallo,
Matlab gibt mir einen Wert aus, der durchaus realistisch ist, allerdings bekomme ich folgende Fehlermeldung:
No solution found.
fsolve stopped because the problem appears regular as measured by the gradient,
but the vector of function values is not near zero as measured by the
default value of the function tolerance.
<stopping criteria details>
Ich verstehe nicht so ganz was das heißt...
Gruß Isi
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.06.2013, 12:31
Titel:
|
|
Ich habe mir die Funktion einmal plotten lassen und das Minimum kommt stimmt mit dem Ergebnis überein, allerdings ist es nicht wirklich eine Nullstelle... kann das das Problem sein?
Beschreibung: |
|
Download |
Dateiname: |
untitled.jpg |
Dateigröße: |
14.27 KB |
Heruntergeladen: |
906 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.06.2013, 12:39
Titel:
|
|
Hallo,
MATLAB versucht, ausgehend vom Startwert sich Richtung 0 zu bewegen. Wenn es keine Nullstelle gibt oder die zu weit weg vom Startwert liegt, ist es durchaus möglich, dass keine Nullstelle gefunden werden kann.
Um das ganze in einem Programm richtig abzufangen, würde ich mir immer auch den Parameter EXITFLAG zurückgeben lassen.
Grüße,
Harald
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.06.2013, 20:46
Titel:
|
|
Hallo,
also das klappt nun, allerdings wird mein Ergebnis komplex. Meine weiteren Ergebnisse, also das fsolve Ergebnis eingesetzt in eine weitere Gleichung, sind real.
Wie geht Matlab denn mit komplexen Zahlen um?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.06.2013, 21:09
Titel:
|
|
Hallo,
Zitat: |
Wie geht Matlab denn mit komplexen Zahlen um? |
So wie man es auch in Schule / Uni gelernt hat.
Bitte die Frage konkretisieren. Am besten anhand eines Beispiels.
Grüße,
Harald
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.07.2013, 18:45
Titel:
|
|
Hallo,
Also das mit der komplexen Zahl sollte passen.
Ich hätte nun aber eine andere Frage: Wenn ich aus Simscape einen Wert in Matlab importiere (To Workspace) schreibt Matlab mir die Werte in eine 1x1 Matrix, bei der Einstellung Timeseries. In meinem Fall Zeit und Temperatur.
Ich möchte ich die Temperatur zum Zeitpunkt t=0 übergeben, sodass
T=T(t=0) also ich möchte nur den Wert der Temperatur. Ist das möglich?
Ist es möglich das ganze über LOAD zu machen?
Danke!
|
|
|
Izzzy |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 24.06.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.07.2013, 19:03
Titel:
|
|
Habe das Problem bereits selbst gelöst
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|