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

Inverse einer (beliebigen) Funktion

 

mhaghdoost
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2010, 22:01     Titel: Inverse einer (beliebigen) Funktion
  Antworten mit Zitat      
Hallo liebe Leute,

ich hab eine Funktion geschrieben, die jedem x-wert einen y-wert zuweist.
Die Funktion ist so komplex, so dass eine analytische Berechnung der Inversenfunktion nicht möglich ist. Wie kann ich am besten die inverse berechnen? sprich ich möchte zu einem beliebigen y-wert den zugehörigen x-wert berechnen.

Mich würde die optimale Lösung interessieren, sprich der Fehler sollte minimal sein.

Im Netz habe ich das gefunden:
http://www.edaboard.com/thread59149.html
Ist aber glaub ich nicht die beste Lösung.

Was kennt Ihr für verfahren?

Gruß

Mo
Private Nachricht senden Benutzer-Profile anzeigen


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2010, 14:20     Titel:
  Antworten mit Zitat      
einfaches problem:

xdaten=linspace(-1,+1,100);
ydaten=sin(x);

invertierung durch interpolation

y=interp1(ydaten,xdaten,x);

Das geht jedoch nur so einfach , wenn funktion 1-dimensional und monoton ist.

Sonst würd ich fsolve benutzen.
 
mhaghdoost
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 05.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2010, 18:08     Titel:
  Antworten mit Zitat      
zu 1) Das Problem hierbei ist doch, dass ich ja nur zu dem vordefinierten "xdaten" die y-werte erhalte. Ich möchte aber zu einem beliebigen y-wert den zugehörigen y-wert erhalten!

zu 2) wie soll ich mir das mit fsolve vorstellen? das ist doch nur für polynome sinnvoll oder sehe ich das falsch?
Bsp:
meine funktion heißt:
FUNCTION
ich suche den zugehörigen x an der stelle y=2
ich kann ja nicht schreiben: fsolve(@FUNCTION-2,x0)

hat jmd einen anderen Vorschlag??? Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2010, 18:36     Titel:
  Antworten mit Zitat      
Code:

xdaten=linspace(0,pi,100);
ydaten=cos(xdaten);

% invertierung durch interpolation
y = 0.72; % beliebiger y- wert
x=interp1(ydaten,xdaten,y); % zugehöriger x-Wert
 


ich hab mal ein paar tippfehler aus der Lösung beseitigt. So sollte es gehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.12.2010, 20:31     Titel:
  Antworten mit Zitat      
Hallo,

wenn eine Funktion fun existiert, die aus jedem x-Wert einen y-Wert berechnet, dann kann man so vorgehen:

Code:
fsolve(@(x) fun(x) - y0, x0)


Dabei wird ausgehend von einem Startwert x0 eine Lösung zur Gleichung fun(x) = y0 gesucht.

Grüße,
Harald
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 - 2025 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.