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

partielle Ableitung

 

dero1690
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 12:00     Titel: partielle Ableitung
  Antworten mit Zitat      
Hallo zusammen !

Ich habe ein Problem beim Ableiten nach symbolischen Variablen.dabei ist eine symbolische Variable zeitabhängig.
Ich glaube, anhand des Codes wird das Problem deutlich:
>> syms t a1(t);
>> L=cos(a1);
>> diff(L,'a1')

ans(t) =

0

Wenn ich jetzt nicht vollkommen ein Brett vorm Kopf habe, dann müsste doch " -sin(a1) " nach dem Differenzieren rauskommen.

Vielen vielen Dank !
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

wenn a1 eine Funktion von t ist, dann ist es doch nicht wirklich sinnvoll, nach a1 abzuleiten? Und nach t ableiten klappt und liefert sinnvolle Ergebnisse:

Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 14:36     Titel:
  Antworten mit Zitat      
Hallo !
Danke für die Antwort Smile
Ich weiß, es klingt nicht sinnvoll, aber bei dem problem, was ich bearbeite ist es notwendig nach a1,also partiell nach einer zweitabhängigen Variable abzuleiten.

Ist es denn bekannt, ob es mit matlab geht ?

ich könnte auch die Frage in die Richtung umformulieren:
Falls eine Funktion eine symbolische Funktion erhält, ist es möglich, nach dieser symbolischen Funktion abzuleiten ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

dann definiere für den Zweck eben
Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 14:55     Titel:
  Antworten mit Zitat      
Das habe ich ja versucht ( siehe 1. Kommentar ), aber leider leitet matlab immer noch falsch ab....
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 05.02.2013, 14:56     Titel:
  Antworten mit Zitat      
Hallo,

wenn a1 von t abhängt und L von a1, dann hängt L auch nur von t ab. Somit ist L' nach a1 0. Was anderes kann da nicht rauskommen. L(a1(t)) ist eine Verkettung von zwei Funktionen nach t. Hierbei gilt die Kettenregel. Von partieller Ableitung zu sprechen, ist nur sinnvoll, wenn die Anzahl der Argumente von f > 1 ist.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 05.02.2013, 15:05     Titel:
  Antworten mit Zitat      
Oder geht das hier eher in Richtung Totales Differential?
Private Nachricht senden Benutzer-Profile anzeigen
 
dero1690
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 15:10     Titel:
  Antworten mit Zitat      
Vielleicht ist "partielle Ableitung " der falsche Begriff, den ich da benutzt habe...
Aber was ich bisher in der Uni gelernt habe über die Jahre:

L=cos(a1(t))

dL/d(a1(t))=-sin(a1(t))

wenn doch nach a1 abgeleitet wird, dann kann man doch a1 als eine Konstante ansehen ( auch wenn diese zeitabhängig ist ), dabei spielt die Zeit doch keine Rolle....

Grüße,
Denys


p.s. nee, richtung totales differential geht es nicht, da ja bei meinem Problem die Zeit keine Rolle spielt...

Zuletzt bearbeitet von dero1690 am 05.02.2013, 15:17, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 05.02.2013, 15:15     Titel:
  Antworten mit Zitat      
Das kann man als gar nichts ansehen. Das ist nicht definiert. Algebraisch betrachtet ist a1 gebunden.

Matlab gibt "zur Güte" 0 aus, da L nach a1 als konstant betrachtet wird. Schau' dir dein Problem nochmal an. Das darf solche Fragestellungen nicht abwerfen. Da stimmt ansonsten was nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.02.2013, 15:18     Titel:
  Antworten mit Zitat      
Hallo,

du musst die ' ' weglassen. Nach einem String abzuleiten ist schwierig ;)

Code:
syms a1
L=cos(a1);
diff(L,a1)


Hier bekommst du doch dein gewünschtes Resultat. Ob das ganze nun sinnvoll ist, ist eine andere Frage, aus der ich mich heraushalten werde.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 15:43     Titel:
  Antworten mit Zitat      
Erstmal vielen Dank für eure antworten !

Bei Haralds Lösung fällt leider unterm Tisch, dass a1 zeitabhängig ist ( a1=a1(t) ).
Das Problem, was ich behandele, ist der Lagrange-Formalismus, um Bewegungsgleichungen für mechanische Systeme zu erhalten......dabei werden partielle ableitungen nach Freiheitsgraden ( in dem Falle a1 , was z.B. einen winkel darstellen soll ) und auch nach der Zeit benötigt.
Und die Freiheitsgrade sind zeitabhängig ( was man sich z.B. bein einem Pendel vorstellen kann, wo die Auslenkung ja zeitabhängig ist )


Grüße
Denys
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.02.2013, 15:49     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Bei Haralds Lösung fällt leider unterm Tisch, dass a1 zeitabhängig ist ( a1=a1(t) ).

Mit dem, was du als "partielle Ableitung" bezeichnest, ignorierst du die Zeitabhängigkeit ja gerade. Zudem erhältst du das von dir gewünschte Ergebnis.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 15:58     Titel:
  Antworten mit Zitat      
Sorry, ich wollte euch nicht verwirren, aber ich will am Ende folgendes erhalten:

L ist eine Funktion von a1, wobei gilt a1=a1(t)

Ich erhalte am Ende die bewegungsgleichung des Systems durch das folgende Prozedere:

0=d(dL/da1(t)')/dt-dL/da1(t)


Somit ist im ersten Teil des Terms die zeitabhängigkeit wichtig ( da eine zeitableitung vorliegt).

Im zweiten Teil ist nur noch die partielle Ableitung nach a1 wichtig.


Die Funktion L ist natürlich nur eine vereinfachung, in der Realität ist sie kompliziert und erhält neben a1(t) auch a1(t)' (1.Ableitung von a1 )




p.s.
das bittere ist, dass ich ja schon die Lösung für mein problme vor 2 Tagen hatte, nur nachdem ich den Code nochmal verbessern wollte und ihn etwas verändert habe, funktioniert es nicht mehr.
Den alten Code habe ihc nciht mehr.deswegen arbeite ich so verbissen an der Sache...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.02.2013, 16:26     Titel:
  Antworten mit Zitat      
Hallo,

mit anderen Worten, du benötigst -sin(a1(t)) als Ergebnis und nicht wie ursprünglich geschrieben -sin(a1) .

Vorsicht: ' ist in MATLAB der Operator zum (konjugierten) Transponieren, nicht zum Differenzieren. Das erklärt auch, wieso du kürzlich bei deinem [leider nicht geposteten] Code als Ausgabe etwas mit conj hattest.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 03.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 16:35     Titel:
  Antworten mit Zitat      
ja, genau , ich benötige -sin(a1(t)) als Ergebnis.
Hier habe ich mich etwas undeutlich ausgedrückt...
Den apostroph habe ich in matlab nicht verwendet, stimmt , das sollte ich auch hier wegen der Verwirrung nicht machen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.