Hallo allerseits
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
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([010-34]) 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
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.
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
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 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?
kann deinen Code gerade nicht ausprobieren, aber ein offensichtlicher Fehler besteht tatsächlich im Differenzenquotienten.
Du berechnest
, müsstest jedoch
berechnen.
Vielleicht kannst du dein Problem damit ja bereits lösen.
P. S. Kenne deine Vorgaben ja nicht, aber mit darfst du übrigens keine allzu gute genauigkeit erwarten. Der beste Wert liegt für den normalen Differenzenquotienten etwa bei , wenn die Maschinengenauigkeit ist (in Matlab durch eps zu erhalten).
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 ))
zur Genauigkeit: ja is halt nich die beste^^ aber is ja nur dass man den Unterschied zur analytischen ableitung sieht
Einstellungen und Berechtigungen
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
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.