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

DIfferenzierung in Matlab

 

Meternagel
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 23.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2015, 16:18     Titel: DIfferenzierung in Matlab
  Antworten mit Zitat      
Hallo Zusammen

Wie weit reichen die Möglichkeiten, eine Funktion zu differenzieren in Matlab? Bei der Ausführung des angehängten Codes treten Fehlermeldungen auf.
Ich kann ja bis zu einem gewissen Grad symbolisch differenzieren, z.B. :
Code:

f = @(x) = x^2;
syms x;
diff_f = diff(f,x)
   
     diff_f =
               
             2*x
 


Meine Fragen wären nun:
- Wo sind die Grenzen für kompliziertere Funktionen?
- Gibt es eine Möglichkeit, die Funktion diff_f nachher in Berechnungen oder Plots zu verwenden?

- Mein Ziel ist es, die untenstehende Formel zu differenzieren, die das Differenzial zu plotten und zu verwenden. (siehe auch angehängter code


Code:

e1 = @(x) ( V1(x) + V2(x) - sqrt( ( V1(x) - V2(x))^2 + 4*v12^2)) / 2
 



Ich bedanke mich im Voraus für Eure Hilfe.

Beste Grüsse
Meternagel

final_function_0.m
 Beschreibung:

Download
 Dateiname:  final_function_0.m
 Dateigröße:  901 Bytes
 Heruntergeladen:  243 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.01.2015, 12:33     Titel:
  Antworten mit Zitat      
Hallo,

warum denn das ganze rückwärts über Function Handles?

Code:
syms x;
f = x^2;
diff_f = diff(f,x)

ist doch der Sinn der Sache.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Meternagel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 23.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.01.2015, 15:38     Titel:
  Antworten mit Zitat      
Hallo Harald

Danke für die Beteiligung. Ich verstehe leider Deinen Einwand nicht.

Das eigentliche Ziel wäre ja, die untenstehende Formel zu differenzieren. Ich hab mir sagen lassen, dass hier Matlab an seine Grenzen stösst...

Momentan mache ich alles einfach noch numerisch.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

... und du willst es doch symbolisch machen? Dann eben auch "richtig":
Code:

vor der ersten Verwendung von x, und dann immer direkte Zuweisung wie im Beispiel statt Function Handle erstellen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Meternagel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 23.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2015, 13:52     Titel:
  Antworten mit Zitat      
Danke Harald, jetzt ist es klarer! Very Happy

Ich scheitere im Weiteren allerdings daran, dann in diese Funktionen einen Wert einzusetzen, d.h. den Funktionswert an einer bestimmten Stelle x zu berechnen.

Gibt es da auch eine Lösung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das sollte mit subs gehen.
Wenn du das schon versucht hast und damit Probleme hast, bitte ein Beispiel zeigen, an dem das Problem deutlich wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Meternagel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 23.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2015, 14:31     Titel:
  Antworten mit Zitat      
Hallo ,

Mit subs klappt es hervorragend. Unten ein einfaches Beispiel. Sollte das mit meinem komplizierteren Programm nicht klappen, werde ich das auch noch posten.


Code:
>> f = x^2; df= diff(f,x)
 
df =
 
2*x
 
>> subs(f,x,2),subs(df,x,2)

ans =

     4


ans =

     4

>>


Kennst Du auch noch eine Möglichkeit, wie ich solche Werte dann plotten kann?
Ich habe es mit fplot versucht - ohne Erfolg:

Code:
>> fplot(f,[-3,3],'r')
Error using fcnchk (line 103)
If FUN is a MATLAB object, it must have an feval method.

Error in fplot (line 61)
   fun = fcnchk(fun);
 




Danke.

Zuletzt bearbeitet von Meternagel am 28.01.2015, 16:25, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 28.01.2015, 15:20     Titel:
  Antworten mit Zitat      
Ich wäre sehr interessiert daran wo "ich habe mir sagen lassen, dass MATLAB da an Grenzen stösst" hekommt.

Ich kann mir nur vorstellen, dass historisch (ich glaube bis 2009) der Maple Kernel eingebunden wurde und die Kommunikation "MATLAB ist für die Numerik da und wenn man Symbolik braucht, dann braucht man was anderes" geläufig war. Aber das ist lange her und MathWorks hat eigene Symbolic Math Fähigkeiten die m.E. mit anderen Produkten für symbolische Mathematik völlig gleichwertig sind.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


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

wenn f ein symbolischer Ausdruck ist, kann zur Visualisierung ezplot verwendet werden.
Falls das nicht weiterhilft, bitte ein Beispiel geben, wie f bei dir definiert ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Meternagel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 23.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2015, 17:07     Titel:
  Antworten mit Zitat      
@Andreas:
Gut zu wissen. Ich selber bevorzuge ja Matlab. Offenbar halten sich alte Meinungen länger als dass sie zutreffen - zumindest bei mir an der Uni.

Embarassed
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.