Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kurvendiskussion - Nullstellen Extrema usw. mit Tchart (https://www.delphipraxis.net/89070-kurvendiskussion-nullstellen-extrema-usw-mit-tchart.html)

Nikolas 26. Mär 2007 18:30

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Deinen Code kann ich nicht lesen, sag mal ehrlich, kannst du selbst verstehen, was du geschrieben hast, ohne Nachzuschauen, wohin welches End gehört und was in welchen Edit/Label steht?

Wie kommst du auf die Ableitungen?

SeriousToni 26. Mär 2007 18:36

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Naja das hab ich mir selbst ausgedacht mit der 0 Stelle, das ist etwas schwer zu verstehn, aber das brauchst du ja nicht oder? Weil das funktioniert ja. Also es werden die richtigen Nullstellen in der Listbox ausgegeben :)

Die Ableitungen habe ich aus dem Kurvenprofi (eine Software zur Kurvendarstellung an der ich meine Ergebnisse kontrolliere). Die müssten so stimmen, da bin ich mir sicher :)


So sieht mein Text für die Sinusableitungen in Delphi aus:
Delphi-Quellcode:
a:=strtofloat(form1.Edit10.text) ;
b:=strtofloat(form1.Edit11.text) ;
form1.Label9.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=a*2;
form1.Label10.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=-2*a;
form1.Label11.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=2*a;
form1.Label12.caption:=floattostr(a)+'*sin('+floattostr(b)+')';
label9 = funktion
label10 = 1. Ableitung
label11 = 2. Abl.
label12 = 3. Abl.

Und hier die Ableitungen für Cosinus in Delphi:
Delphi-Quellcode:
a:=strtofloat(form1.Edit12.text) ;
b:=strtofloat(form1.Edit13.text) ;
form1.Label9.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=a*2;
form1.Label10.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=-2*a;
form1.Label11.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=2*a;
form1.Label12.caption:=floattostr(a)+'*cos('+floattostr(b)+')';
label9 = funktion
label10 = 1. Ableitung
label11 = 2. Abl.
label12 = 3. Abl.


Also ich brauch jetz Hilfe bei der Ermittlung von Extrema und Wendepunkte bei a*sin(b*x) und a*cos(b*x). Da weis ich nicht, wie ich das herausbekommen soll über Delphi :cry:

Nikolas 26. Mär 2007 19:26

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Naja. Erstmal solltest du die richtigen Ableitungen ausrechnen (also mal richtung Kettenregel denken)
Und wenn du schon die Nullstellen der Sinusfunktione bestimmen kannst, hast du auch die von der Cosinusfunktion und damit kannst du doch auch die NS der Ableitung bestimmen...

SeriousToni 26. Mär 2007 19:54

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Oops, da hab ich ja nochwas falsch, das stimmt, also hier die richtigen Ableitungen:

fsin(x) =a*sin(b*x)
fsin'(x) =b*a*cos(b*x)
fsin''(x) =-b*a*sin(b*x)
fsin'''(x) =b*a*cos(b*x)

fcos(x)=a*cos(b*x)
fcos'(x)=-b*a*sin(b*x)
fcos''(x)=b*a*cos(b*x)
fcos'''(x)=-b*a*sin(b*x)

Die stimmen jetzt aber! :P

Also müsste man jetz einfach y=0 setzen - ok
Aber wie stelle ich denn das nach x um? Also das bei 0=b*a*cos(b*x) das x bei der 0 steht :shock: das geht doch gar nich weil ich hab ja kein + oder - in der Gleichung, könnte also nur 0* oder 0/ rechnen und bekäme das x nicht alleine auf eine Seite :pale: Oh Herrje, .. das ne Aufgabe :(

Nikolas 26. Mär 2007 20:08

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Zitat:

Die stimmen jetzt aber! :P
Nein, die Ableitungen stimmen immer noch nicht. :roll: Warum kommt bei der ersten Ableitung ein b aus dem Sinus nach vorne, bei den anderen aber nicht?

Zitat:

Aber wie stelle ich denn das nach x um? Also das bei 0=b*a*cos(b*x) das x bei der 0 steht Shocked das geht doch gar nich weil ich hab ja kein + oder - in der Gleichung, könnte also nur 0* oder 0/ rechnen und bekäme das x nicht alleine auf eine Seite Pale Oh Herrje, .. das ne Aufgabe Sad
Wann ist denn der Cosinus Null? Das ist genau dann der Fall, wenn sein Argument ein Ungeradganzzahliges Vielfaches von pi/2 ist. (pi/2, 3pi/2, 5pi/2, allgemein (2z-1)*pi/2). Also musst du dein bx=(2z-1)*pi/2
setzen. Das sind alle möglichen Lösungen (z aus Z), jetzt musst du noch die Aussuchen, die in deinem Intervall liegen. Und das sind die, bei denen (2z-1)*pi/2/b innerhalb deines Intervalls liegt. Und das sollte ausrechenbar sein.

SeriousToni 26. Mär 2007 21:13

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Delphi-Quellcode:
//Ableitungen Sinus
a:=strtofloat(form1.Edit10.text) ;
b:=strtofloat(form1.Edit11.text) ;
form1.Label9.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=a*b;
form1.Label10.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=(-b)*a;
form1.Label11.Caption:=floattostr(a)+'*sin('+floattostr(b)+')';
a:=b*a;
form1.Label12.caption:=floattostr(a)+'*sin('+floattostr(b)+')';
Delphi-Quellcode:
//Ableitungen Kosinus
a:=strtofloat(form1.Edit12.text) ;
b:=strtofloat(form1.Edit13.text) ;
form1.Label9.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=a*(-b);
form1.Label10.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=b*a;
form1.Label11.Caption:=floattostr(a)+'*cos('+floattostr(b)+')';
a:=(-b)*a;
form1.Label12.caption:=floattostr(a)+'*cos('+floattostr(b)+')';
Ja wenn du sie so in Delphi eingibst funktionieren sie aber, die Ableitungen.
Wenn es nach dem Kurvenprofi geht zumindest.


Also das ist ja ne schlaue Überlegung von dir! :o
Ich hab bis jetzt folgendes, aber die Werte die mir geliefert werden stimmen noch nicht weil ich n nicht für z in die Formel einsetzen kann, weil z ist ja im Prinzip die jeweilige Nullstelle. Also wenn ich Nullstelle Nr.2 haben will setz ich für z 2 ein und ich bekomme 4,7 raus. Wenn ich Nullstelle Nr.-3 haben will setz ich für z -3 ein und erhalte -10,99. Also immer ein Wert mit einer ungeraden Zahl*pi durch 2, wie du gesagt hast - wie bringe ich das aber im Bezug auf das Intervall in Bezug? Ich habe in meinem Programm praktisch die Intervalgrenze n selbst eingesetzt, was aber falsch ist, da n <> z ist, denn n ist mit z.B. -5 vielleicht der Startintervall, aber im Bezug auf z wäre -5 die Nullstelle Nr.-5! Verstehst du wie ich das meine? In ein n passt praktisch ein 1/pi*z

Hier mal der Code :gruebel:
Delphi-Quellcode:
n:=strtofloat(form1.Edit16.Text);
//bx:=((2*z)-1)*pi/2;
while (n>=strtofloat(form1.Edit16.Text)) and (n<=strtofloat(form1.Edit17.Text)) do
begin
  z:=((2*n)-1)*pi/2/b;
  form1.ListBox2.Items.Add(floattostr(z))   ;
  n:=n+1;
end;
edit 16 ist das Startinterval, edit17 das Endinterval, z die nullstelle nr.z, n eine zählvariable im bezug auf das Intervall

Nikolas 28. Mär 2007 09:23

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Nein, sicher nicht. Der Vorfaktor stimmt jetzt zwar, aber da du den Rest einfach nur copy/Past gemacht hast, sind immer noch Fehler drin...

Schau doch mal: Wenn (v,w) dein Intervall ist und v<=x<=w gelten muss und bx:=((2*z)-1)*pi/2 gilt, dann ergibt das doch v<=((2*z)-1)*pi/2/b<=w. Wenn du jetzt bei dieses Ungleichungskette nicht mit negativen Zahlen multiplizierst, bleiben die Ungleichungen bestehen. Also v*2*b/pi<=2z-1<=w*2*b/pi. Dann noch mit 1 addieren und halbieren und du hast eine Gleichung die dir genau sagt, in welchem Intervall nun dein z zu suchen ist.

SeriousToni 22. Apr 2007 17:35

Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
 
Hallo Nikolas - vielen Dank für deine Hilfe! Wir haben unsere Noten am Freitag bekommen und ich habe 13 Punkte (1-) auf die Arbeit bekommen. Ich wollte mich nochmal bei dir bedanken da du ja auch durchaus zu dieser Note mit deiner Hilfe (und vor allem Gedult) dazu beigetragen hast! Vielen Dank! Ich hab dem Lehrer auch gesagt, dass die Sache nicht ganz allein auf meinem Mist gewachsen ist natürlich :) Also danke nochmal, das du dir so viel Mühe gegeben hast mir zu helfen und alles zu erklären!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz