|
|
Umkehrfunktion von nicht-linearer Gl. mit solve klappt nicht |
|
Fat_Tommy |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.10.2011, 18:50
Titel: Umkehrfunktion von nicht-linearer Gl. mit solve klappt nicht
|
|
|
|
|
Hallo Zusammen,
für meine Studienabschlussarbeit versuche ich gerade die Umkehrfunktion einer Gleichung zu errechnen.
Zur Vorgehensweise:
Da ich mit symbolischen Variablen rechnen möchte benutze ich die "syms"-Funktion. Anschließend verwende ich die "solve"-Funktion um nach der gewünschten Variable aufzulösen.
Problem:
Matlab errechnet die Umkehrfunktion nicht sondern gibt mir dies aus:
Warning: Explicit solution could not be found.
> In solve at 160
Meine Funktion:
>> clear
>> syms a
>> solve('f=-126.87+326*sin(a/180*pi)-sin((67.96-(90-((acos(((-(453.85^2))+(((-377.55-326*cos(a/180*pi))+451)^2+((-126.87+326*sin(a/180*pi))-321)^2)+326^2)/(326*2*sqrt((((-377.55-326*cos(a/180*pi))+451)^2+((-126.87+326*sin(a/180*pi))-321)^2)))))*180/pi)-((acos((-(238^2)+(524.5^2)+(((-377.55-326*cos(a/180*pi))+451)^2+((-126.87+326*sin(a/180*pi))-321)^2))/(2*524.5*sqrt((((-377.55-326*cos(a/180*pi))+451)^2+((-126.87+326*sin(a/180*pi))-321)^2)))))*180/pi)+a))/180*pi)*242.63+351.6276',a)
Vielen Dank im Vorraus
Viele Grüße
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 11.10.2011, 20:06
Titel:
|
|
Hallo,
symbolisches Rechnen hat naturgemäß seine Grenzen.
Stell es dir so vor: symbolisches Rechnen kann dasselbe, was du mit Papier und Bleistift kannst - nur schneller. Wenn es aber keine explizite Lösung gibt, dann wird man sie auch mit symbolischem Rechnen nicht finden.
Plotte die Funktion mal, und du wirst sehen, dass die Anzahl der Lösungen mit den f-Werten variiert.
Ja, und selbst wenn es eine explizite Lösung gäbe, dann wäre sie genauso komplex oder vermutlich noch komplexer wie deine Funktion. Was würdest du denn damit machen, außer Werte einsetzen?
Vorschlag: gleich numerisch rechnen und mit FSOLVE arbeiten.
Grüße,
Harald
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.10.2011, 14:42
Titel:
|
|
Hallo Harald,
vielen Dank für die schnelle Antwort.
Da die Gleichung wirklich etwas komplex ist, habe ich sie durch ein Polynom angenähert und davon die Umkehrfunktion gebildet.
Die Ungenauigkeit ist überschaubar...
Trotzdem vielen Dank für deine wertvollen Tipps.
Viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.10.2011, 16:13
Titel:
|
|
Hallo,
generell würde ich von so einem Verfahren abraten, da ein Polynom das Verhalten einer solch komplexen Funktion generell nur unzureichend wiedergibt. Bei Polynomen höheren Grades dürfte das Invertieren zudem auch schwierig sein.
Gerade in einer Abschlussarbeit würde ich persönlich es lieber vermeiden, so einen "weil einem nichts besseres einfällt"-Workaround zu verwenden.
In jedem Fall würde ich auch noch einen Plot dazu machen (Vorsicht, dass keine komplex-wertigen Lösungen mit geplottet werden, ggf. komplexwertige Einträge durch NaN ersetzen). Vor allem lässt sich ein Plot auch wunderbar einfach invertieren:
statt
Grüße,
Harald
|
|
|
|
|
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.
|
|