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

 

MANCHESTER2010
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2010, 17:21     Titel: Partielle Ableitung
  Antworten mit Zitat      
Hallo,
ich habe die Funktion f=2*(((xi-a)^2)+((yi-b)^2)-(r*r))*(-2*r))
ich brauche nun die allgemeine partielle Ableitung nach df/da! Kann mir jemand helfen.....
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.10.2010, 18:39     Titel: Re: Partielle Ableitung
  Antworten mit Zitat      
Hallo MANCHESTER2010,

numerisch oder symbolisch?
Das Ableiten wäre ja nicht soo schwer.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MANCHESTER2010
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.10.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2010, 18:50     Titel:
  Antworten mit Zitat      
hey...weiss nicht genau was du meinst.......glaube aber symbolisch.........ich will dann einfach dastehen haben df/da oder f' = (((3a^2-xi)^2-xi^2+yi(......)))....die Werte dienen nur als Beispiel.....Ableiten ist nicht schwer, muss das aber fuer sehr viele Funktionen machen......deshalb MATLAB
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: 16.10.2010, 11:49     Titel:
  Antworten mit Zitat      
Hallo,

direkt in MATLAB:
Code:
syms a b xi yi r
f = ...
diff(f, a)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 16.07.2012, 15:10     Titel:
  Antworten mit Zitat      
hi zusammen,

ich möchte das hier gerne nochmal aufgreifen.
Wie würde ich das denn numerisch hinbekommen?
Ich habe eine darstellung der richtungsableitung gefunden die "NABLA G(x,y)" heisst (ich weis nicht wie ich das zeichen für den nabla-operator hier rein bekomme).
Es wird also eine ableitung nach x und y gemacht.
Ich mache das numerisch so:

Code:

xGrad = abs(Matrix(:,2:(end)) - Matrix(:,1:(end-1)));
yGrad = abs(Matrix(2:(end),:) - Matrix(1:(end-1),:));
Grad = xGrad(2:end,:) + yGrad(:,2:end);
 


Ist die vorgehensweise richtig so oder muss man das anderst machen? Ich hoffe jemand kennt sich ein wenig besser damit aus.

Grüße,

Mad
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 16.07.2012, 16:10     Titel:
  Antworten mit Zitat      
ich schon wieder Razz
ich habe gerade die funktion gradient gefunden.
laut funktionsbeschreibung soll sie den gradienten in eine richtung bilden.
ich rufe die funktion so auf:

Code:

[Gx ,Gy ] = gradient(Matrix);
Gx = abs(xGrad );
Gy = abs(yGrad);
 


ich hätte vermutet, dass Gx mit xGrad von vorhin bzw Gy mit yGrad identisch sind. wenn ich das jetzt aber vergleiche stimmen die ergebnisse der beiden Methoden schonmal nicht überein.
die gradient-Funktion liefert als ergebnis zwei Matritzen (Gx und Gy) der größe (x,y).
meine version mit der pixeldifferenz ergibt für xGrad die größe (x,y-1) und für yGrad die größe (x-1,y).
neben der abweichung der größe weichen aber auch die errechneten werte ab. ich kann mir das nicht so wirklich erklären Embarassed
Falls meine Beschreibung nicht verständlich ist, bitte einfach nachfragen, dann versuche ich es besser darzustellen. Kann mir evtl jmd weiterhelfen? Bin für alle Tips dankbar Smile

Grüße,

mad
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: 16.07.2012, 20:01     Titel:
  Antworten mit Zitat      
Hallo,

die Frage ist, wie die Ableitung angenähert wird. Es gibt da Vorwärts-, Rückwärts-, und zentrale Differenzen.
http://de.wikipedia.org/wiki/Differenzenquotient

Deine Ableitungen sind einseitige Differenzen für die Datenpunkte an sich bzw. können auch als zentrale Differenzen für Punkte zwischen den Datenpunkten an sich aufgefasst werden.

gradient liefert einseitige Differenzen für die Randpunkte (außerhalb gibts ja nichts mehr) und zentrale Differenzen für die übrigen Datenpunkte.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 17.07.2012, 09:34     Titel:
  Antworten mit Zitat      
Hi Harald,

danke für deine Antwort, das war mir so nicht bewusst.
Meine Methode aus meinem ersten post entspricht einem Vorwärtsdifferzenquotienten, wenn ich das aus wiki richtig interpretieren.
Das entspricht glaube ich auch so ziemlich dem was die funktion diff in matlab durchführt.
Was ich nicht ganz verstehe, ist wie ich jetzt entscheiden kann, welche funktion die für mich passende ist. Gibt es kriterien an denen ich das festmachen könnte?

Grüße,

Mad
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: 17.07.2012, 18:42     Titel:
  Antworten mit Zitat      
Hallo,

da gibt es keine allgemeingültigen Regeln. Üblicherweise nimmt man möglichst die zentralen Differenzen, da sie typischerweise eine bessere Annäherung an die tatsächliche Ableitung liefern als einseitige Differenzen.

GRADIENT macht also m.E. das bestmögliche.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 18.07.2012, 08:30     Titel:
  Antworten mit Zitat      
hi harald,

vielen dank!
ich hab mir die beiden kurvenverläufe vom einseitigen gradienten und vom beidseitigen gradienten angeschaut und beide als vergelichbar gut empfunden.
ich nehme jetzt gradient, das is ja bereits fertig implementiert Razz


grüße,

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