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

Differentiation, Differentialquotient

 

Steckerlfisch
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2012, 22:54     Titel: Differentiation, Differentialquotient
  Antworten mit Zitat      
Hallo allerseits Smile
hab ein kleines problem, dass sich wie ein rattenschwanz durch mein programm läuft.. sitz jetz schon 2 stunden davor, komm aber nicht recht weiter. hoffe es kann mir wer helfen, danke schon mal im Vorraus Smile
Code:

%Teil 1: numerische Ableitung mit Hilfe des Differentialquotienten
%vorher zu definieren: x=0:0.1:10; a=-1;b=12;c=5
subplot(2,1,1)
deltax=0.01;
ynumabl=((a.*(x0+deltax).^2+b.*(x0+deltax)+c)-(a*deltax^2+b*deltax+c))./deltax;%<-- WARUM IST DAS NICHT DIE ABLEITUNG SONDERN EINE PARABEL
%(nach der Definition:http://de.wikipedia.org/wiki/Differentialquotient
plot(x0,ynumabl,'--c','linewidth',1);

%Teil 2: analytische Ableitung bestimmen
yanaabl=diff(y,1);%<--WARUM ZUR HÖLLE HAT DIESE MATRIX NUR 100 ELEMENTE, UND NICHT 101 SO WIE SICHS GEHÖRT!
plot(x0,[0,yanaabl],'.-y','linewidth',1)%0 in der Matrix vorhanden wegen sonst fehlerhafter ausführung von "plot"
title('numerische und analytische Ableitung')
xlabel('x')
ylabel('y')
axis([0 10 -3 4])
grid on
legend('numerische Ableitung','location','northeast',...
    'analytische Ableitung');

%Differenz der beiden Kurven
subplot(2,1,2)
ydiff=ynumabl-[0,yanaabl];%<--Warum nicht konstant?
plot(x0,ydiff,'--c','linewidth',2)
xlabel('x')
ylabel('y')
title('Differenz der beiden Ableitungen')
grid on
 
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


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

den Differentialquotienten kann man nicht zeichnen, denn es ist schlicht eine Zahl. Oder meinst du die Tangente? Diese wird über y=f'(x0)*(x-x0)+f(x0) bestimmt.
diff() berechnet die Differenzen (v_i-v_(i+1)) eines Vektors. Davon gibt es natürlich n-1. Überdies benötigst du die Symbolic Toolbox, wenn du die Ableitung analytisch berechnen willst.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
Steckerlfisch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 20:31     Titel:
  Antworten mit Zitat      
Danke für deine schnelle Antwort! irgendwie hilft mir die aber nicht ganz weiter.Immerhin versteh ich jetzt warum die Matrix nur 100 Elemente hat Wink
Ansonsten möchte ich ja die Ableitung über den Differenialquotienten an jeder Stelle x berechnen. (in dem fall x0) --> es sollte dann eigentlich eine Gerade herauskommen, denn die Steigung meiner Parabel fällt ja kontinuierlich ab.

gut, die Analytische Ableitung hab ich jetz hinbekommen Smile mir hat nur der Befehl "subs" gefehlt, allerdings macht die numerische immer noch irgendwie das was sie will. sie sollte ja im endeffekt die gleich wie die analytische sein.

ich mein was stimmt an meinem Differentialquotienten nicht, dass da nicht die gewünschte Ableitung rauskommt?
Private Nachricht senden Benutzer-Profile anzeigen
 
HerrErnie
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 21:31     Titel:
  Antworten mit Zitat      
Hallo,

kann deinen Code gerade nicht ausprobieren, aber ein offensichtlicher Fehler besteht tatsächlich im Differenzenquotienten.

Du berechnest
\frac{f(x_0+\Delta x)-f(\Delta x)}{\Delta x}, müsstest jedoch

\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x}
berechnen.

Vielleicht kannst du dein Problem damit ja bereits lösen.


P. S. Kenne deine Vorgaben ja nicht, aber mit \Delta x=0.01 darfst du übrigens keine allzu gute genauigkeit erwarten. Der beste Wert liegt für den normalen Differenzenquotienten etwa bei \Delta x =\epsilon^{0.5}, wenn \epsilon die Maschinengenauigkeit ist (in Matlab durch eps zu erhalten).
Private Nachricht senden Benutzer-Profile anzeigen
 
Steckerlfisch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2012, 22:29     Titel:
  Antworten mit Zitat      
Guten Abend,
ich wusste es^^ is aber auch ziemlich verwirrend das Ganze..
herzlichen Dank für die Antwort noch zu später Stunde, jetz funktioniert alles so wie es soll Smile))
zur Genauigkeit: ja is halt nich die beste^^ aber is ja nur dass man den Unterschied zur analytischen ableitung sieht Wink
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.