![]() |
Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Ich bin auf ein Problem gestoßen, wo ich gerade nicht alleine weiterkomme:
Ich möchte gerne die Schnittpunkte des Funktionsgraphen (series1) mit der x und y Achse in eine Listbox bringen. Das Gleiche möchte ich für Extrema und Wendepunkte. Ich arbeite mit dem Tchart.
Delphi-Quellcode:
Leider scheint er nicht so recht zu checken, wann y bzw. x wirklich Null ist, denn es steht nichts in der Listbox nach berechnung des Graphen! Hierbei handelt es sich um die Achsenschnittpunkte mit der Funktion.
x:=strtofloat(form1.Edit16.Text);
while x<= strtofloat(form1.Edit17.Text) do begin y:=(strtofloat(form1.Edit1.text)*x*x)+(strtofloat(form1.edit2.Text)*x)+strtofloat(form1.Edit3.Text); form2.series1.addxy(x,y); form2.Series2.addxy(x,0); form2.Series3.AddXY(0,y); if y=0 then begin form1.ListBox1.Items.Add('X-Achse:'+floattostr(x)); end; if x=0 then begin form1.ListBox1.Items.Add('Y-Achse:'+floattostr(y)); end; x:=x+0.01; end; Die Anweisung an sich funktioniert, ich weis nur nicht warum er sie nicht ausführt, da x und y ja auch zeitweise 0 sind! Ich habe noch versucht über series1 (also dem Tchart-Funktionsgraphen) selbst prüfen zu lassen, wenn der x oder y value 0 ist, aber dazu scheint es keine Anweisung zu geben, die das prüft. Wie kann ich das hier Lösen, mache ich etwas falsch? |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Du betrachtest von der x-Achse nur ein paar einzelne Punkte. Da kannst du nicht sicher sein, dass der Nullunkt deiner Parabel genau auf so einen trifft.
Auch vergisst du, dass der Rechner nicht unendlich genau ist. Test wie if a=3.5 sind daher ungeschickt. Du musst eher testen, ob dein Wert fast null ist. Also z.B. if abs(y-0)<0.001. Geht es dir hier nur um solche Parabeln? In diesem Fall solltest du doch eher einfach die Nullstellen analytisch berechnen und nicht so ungenau approximieren. Alternativ wäre auch ein Newtonverfahren angebracht, das wird dir genauere Ergebnisse liefern. |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
das Programm stellt Funktionen wie ax³+bx²+cx+d, oder ax²+bx+c oder mx+n oder a*sin(b*x) bzw. cos und tan dar!
|
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Mach das mathematisch...
1) Nullstellen: Polynomdivision (nur ganzrationale Funktionen) bzw. Mitternachtsformel 2) Hoch-/Tief-/Wendepunkte: f(x) ableiten |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Dann ist dein Ansatz zwar recht einfach, aber nicht besonders schön.
Bei den Polynomen zweiten Grades kannst du einfach die PQ-Formel (Mitternachts,abc-Formel) umsetzen und hast damit die bestmöglichen Werte und kannst auch noch ausgeben, wenn es keine Nullstellen gibt. Beim dritten Grad kannst du entweder nach einer expliziten Darstellung der NS suchen (sowas gibts, habe ich mal gehört), oder du implementierst das Newtonverfahren (recht einfach), und spaltest dann mittels Polynomdivison deine gefundene Nullstelle ab und machst anschließen wie bei den Polynomen dritten Grades weiter. Bei den Sinusfunktionen sollte die Analytische Darstellung der NS recht einfach sein. sin(bx) hat NS bei x=n*pi/b, wobei n eine beliebige ganze Zahl ist. Die kannst du dann mit einer einfachen Schleife im eingestellten Intervall ausgeben lassen. Ich gehe mal davon aus, dass das Ganze für die Schule ist und für eine richtig gute Note wird dein Verfahren wahrscheinlich nicht ausreichen. |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Danke für die Hilfe ihr beiden! Also ich glaube ich lasse diese x³ Funktion besser weg, weil das ist ja ein riesen Aufwand wenn ich mir diese Newtonformel so bei Wikipedia anschaue :o
PS: Ja, is Projektarbeit für die Schule ^^ |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Also ich bin jetzt bei der Sinus Nullstelle:
Das ist mein Code
Delphi-Quellcode:
c ergibt sich aus dem Startintervall und
while c<d do begin
xo1:=c*(pi/b); form1.ListBox1.Items.Add(floattostr(xo1)); c:=c+1; end; end; d ergibt sich aus dem Endintervall das der Nutzer beliebig eingeben kann. Wenn ich jetzt die Funktion 1*sin(1*x) im Intervall von -1 bis 1 eingebe, so gibt er mir 2 Ergebnisse als Nullstellen aus, nämlich -3.14 (pi) und 0. Aber nur 0 wäre ja richtig. Habe ich ein Intervall von -4 bis 4 gibt er mir schon sage und schreibe 8 Nullstellen aus (von -12,5 bis 9,4). Woran liegt das?? er geht praktisch bei nem Intervall von -1 bis 1 mit c=-1 und d=1 rein, da hatter dann dieses -pi am Ende, c wird um 1 erhöht und er hat die 0 am Ende, c wird wieder erhöht und die schleifgenbedingung damit nicht mehr erfüllt. Wie krieg ich diese vielen falschen Werte weg? (in dem Beispiel ist es nur das -pi, aber wie gesagt, bei großen Intervallen hat er viel zu viele Nullstellen) |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Zitat:
// Deine Formatierung ist extrem schlecht. Zwei end in einer Zeile, zusammengehörige begin und end nicht übereinander, das ist kaum lesbar.
Delphi-Quellcode:
while c<d do
begin xo1:=c*(pi/b); form1.ListBox1.Items.Add(floattostr(xo1)); c:=c+1; end; end; |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Waah! Hilfe!! Ich habe gerade festgestellt das Tchart die Funktionen falsch darstellt!!
y:=(x*x)-(4*x)+3 ; wird an einer falschen Stelle dargestellt z.B. !! Kacke woran liegt das, Mittwoch muss die Arbeit fertig sein und jetzt sehe ich, dass meine Funktionen gar nicht richtig dargestellt werden!! Ich hab als Beispiel mal y:=(x*x)-(4*x)+3 ; probiert, egal ob mit oder ohne Klammern, die Funktion steht viel zu weit links im Koordinatensystem und die Krümmung scheint auch falsch zu sein?? Was mache ich denn falsch?? Oh Mann!
Delphi-Quellcode:
hiernochmal ein Stück Code aus dem Programm, ich hab Testweise mal eine feste Funktion eingesetzt! Es wird falsch dargestellt im TChart! Edit 16 ist Start und Edit 17 das Ende (Intervall in dem der Graph gezeichnet wird - wird vom Benutzer eingegeben)
x:=strtofloat(form1.Edit16.Text);
while x<= strtofloat(form1.Edit17.Text) do begin //y:=(strtofloat(form1.Edit4.text)*x)+(strtofloat(form1.edit5.Text)); y:=(x*x)-(4*x)+3 ; form2.series1.addxy(x,y); form2.Series2.addxy(x,0); form2.Series3.AddXY(0,y); x:=x+0.01; end; |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
c und d gibt der Benutzer ein - sorry wegen dem end; das gehörte zur Procedur weiter oben
Dieses Intervall muss sowiso eingegeben werden damit der Computer den Graphen in einem Bereich zeichnen kann (siehe Post davor, da siehst du wie ich den Graphen zeichnen lasse, x erhöht sich immer um einen Pixel im Intervall) da nehme ich das c und d heraus, aus dem eingegebenen Intervall |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Liste der Anhänge anzeigen (Anzahl: 1)
hier einmal ein Bild- der rote Graph ist die Darstellung von Tchart - der grüne den ich mit der Hand gezeichnet hab, wäre aber richtig! :o
|
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Das ist natürlich Unsinn, da die Grenzen des Intervalls einzufügen...
Dieses n, das ich eingeührt habe, steht grob für die n-te NS der Funktion. Mal dir mal den Sinus auf und beschrifte die Nullstellen mit 0*pi,1*pi usw. und du wirst den Fehler sehen. Wenn deine untere Intervallgrenze (a,b) positiv ist, müsstest du es so machen: n=floor(a/pi); die ersten n NS (von x=0 an gezählt) liegen also nicht in deinem Intervall, also schaust du dir nur die Nullstellen die zu floor(a/pi)<n<ceil(b/pi) liegen. (+-1 an jeder Seite, so genau habe ich da jetzt nicht nachgedacht. Ähnliche Überlegungen kannst du dann auch machen, wenn dein Intervall teilweise negativ ist. Wie siehts denn mit den Polynomen aus? // Zum Schaubild Wenn du dabei Hilfe brauchst mache einen eigenen Thread dafür auf und füge noch den passenden Code hinzu. Wenn du nicht verräts, was du geschrieben hast, kann dir auch niemand deinen Fehler sagen. |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
den grünen hab ich ja auch mit der Hand gezeichnet - aber ich glaub ich hab den Fehler jetzt gefunden und es müsste wieder Funktionieren!
So, also bleiben wir beim sinus-Problem, ok ich werde mir den mal aufzeichnen und deinen Hinweis anschauen - vielleicht bekomm ichs hin btw welche Polynome? die x³ Funktion?? Umm ich glaub die mach ich wieder raus weil das is mir zu kompliziert mit der Polynomdivision usw. Das pack ich nich |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
So du hast mir schonmal ein wenig auf die Sprünge geholfen, ich habe jetzt folgenden Code:
Delphi-Quellcode:
Die Formel für die Funktion lautet
//Nullstelle positiv
form1.ListBox1.clear; a:=0; b:=strtofloat(form1.Edit11.text); c:=0; d:=strtofloat(form1.Edit17.text); while a<d do begin xo1:=c*(pi/b); form1.ListBox1.Items.Add(floattostr(xo1)); a:=a+(pi/b); c:=c+1; end; //Nullstelle negativ a:=0; b:=strtofloat(form1.Edit11.text); c:=0; d:=-1*(strtofloat(form1.Edit16.text)); if (strtofloat(form1.Edit17.text))>=0 then begin while a<d do begin xo1:=-1*(c*(pi/b)); if xo1<>0 then begin form1.ListBox1.Items.Add(floattostr(xo1)); end; a:=a+(pi/b); c:=c+1; end; end;
Delphi-Quellcode:
Das einzigste Problem ist, dass man hier keinen Intervall eingeben darf, der nicht durch 0 geht (z.B. -15 bis -10 oder 10 bis 15) - aber ich denke das muss ich wohl in Kauf nehmen.
y:=a*sin(b*x)
edit: hab die Formel etwas umgebaut und sie Funktioniert jetzt auch für die Kosinusnullstellen! |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Ich lasse nun auch die Ableitungen berechnen, das ist ja an sich nicht schwer da die Formel ja einfach ist, hier ein Beispiel aus meinem Program :)
Delphi-Quellcode:
Dies ist die Funktion a*x*x+b*x+c
//Ableitungen
form1.Label9.Caption:=form1.Edit1.Text+'*x*x + '+form1.Edit2.Text+'*x + '+form1.Edit3.Text; a:=strtofloat(form1.Edit1.Text)*2; form1.Label10.Caption:=floattostr(a)+'*x + '+form1.Edit2.text; form1.Label11.Caption:=floattostr(a); form1.Label12.caption:='0'; a,b und c kann der Benutzer eingeben. Label 9 ist die normale Funktionsformel f(x). Label 10 die erste Ableitung f'(x), Label 11 und 12 die zweite und dritte Ableitung f''(x) f'''(x). In Mathe müssen wir bei einer Kurvendiskussion immer die Extrema (Hochpunkt/Tiefpunkt) und die Wendepunkte (Lr-WP/Rl-WP) berechnen. Will ich die Extrema berechnen, setze ich die erste Ableitung f'(x)=0. Aus dem Ergebnis ergibt sich der x-Wert, den ich in f(x) einsetze und damit y erhalte. Setze ich x in f''(x) ein, so erhalte ich bei x<0 einen Hochpunkt und bei x>0 einen Tiefpunkt. Ähnlich macht man es bei den Wendepunkten (die nächst höhere Ableitung, gleicher Prozess). Aber wie kann ich das in Delphi lösen? Weil ich kann ja nicht einfach sagen "setz mal die erste Ableitung 0 und stelle nach x um!" Ich hab halt verschiedene Formeln, es gibt z.B. a*x*x+b*x+c oder m*x+n oder a*sin(b*x) und auch a*cos(b*x). Je nachdem was der Nutzer für a, b, c, n oder m eingibt sehen ja die Formeln anders aus! :pale: Ich wollte gerne die Extrema und WP mit ihren x und y Koordinaten und der Art des Extremas/WPs in einer Listbox ausgeben. Das kann ich mit form1.listbox1.items.add(...) machen :) Die Funktionen stelle ich mit Tchart dar:
Delphi-Quellcode:
Für die Funktion f(x)=m*x+n lasse ich einfach "Keine" in der Listbox erscheinen, da die Funktion ja keine Extrema oder Wendepunkte haben kann :bounce1:
x:=strtofloat(form1.Edit16.Text);
while x<= strtofloat(form1.Edit17.Text) do begin y:=(a*x*x)+(b*x)+c; form2.series1.addxy(x,y); form2.Series2.addxy(x,0); form2.Series3.AddXY(0,y); x:=x+0.01; end; |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
also die Extrema für a*x*x+b*x+c funktionieren jetzt! Hatte einen Geistesblitz, ich brauch ja nur den Scheitelpunkt berechnen ^^
Ich hänge aber noch an den Wendepunkten und Extrema von Sinus und Cosinusfunktionen :( Weis jemand, wie ich das am besten berechnen kann? Das Problem ist, das die Funktionen ja a*sin(b*x) bzw. cos sind, a und b sind variabel vom Nutzer einzugeben. |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Noch ein paar Hinweise:
- Gib deinen Labels passende Namen. Sonst ist es kaum zu verstehen. - Schreib den Inhalt aus den Labels in passende Floatvariablen, damit du nachher nicht immer bei den Berechnungen ein strtofloat(Edit.text) schreiben musst, was sehr die lesbarkeit einschränkt. - Rücke sinnvoll ein! Such mal nach einem Styleguide, sonst wird dein Lehrer deinen Text auch nicht gerne lesen, was sicher Punktabzug bedeutet. Zitat:
Also alle Möglichen Ableitung fest in dein Programm schreiben und dann nur mit den Werten füttern. Nimm dir erst mal ein Papier und leite deine möglichen Funktionen ab und forme sie passende um und schau was passieren kann, wenn verschiedene Teile kleiner als Null (pq-Formel) oder gleich null sind, wo du also noch Spezialfälle einbauen willst. Wenn du damit fertig bist, kannst du das hier mal veröffentlichen und später dann implementieren. Also erst denken und dann an den Computer setzen. |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
ah mein Helfer ist wieder hier :thumb:
Also mit der quadrat. Funktion das funktioniert jetzt, danke, wie gesagt, ich weis nicht wie ich die Extrema und WP von cos und sin Funktionen herausbekommen soll wenn a und b variabel sind?? :pale: |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Wie sehen denn die ersten beiden Ableitungen aller Funktionen aus? Hast du schon die Nullstellen der normalen Sinusfunktion berechnet?
|
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Die Ableitung zu sinus:
Delphi-Quellcode:
Label9 - Funktion
//Ableitungen
a:=strtofloat(form1.Edit10.text) ; b:=strtofloat(form1.Edit11.text) ; form1.Label9.Caption:=a+'*sin('+b+'*x)'; form1.Label10.Caption:='2*a*cos(b*x)'; form1.Label11.Caption:='-2*a*sin(b*x)'; form1.Label12.caption:='-2*a*cos(b*x)'; Label10- 1.Ableitung Label11- 2.A. Label12- 3.A. Zu cosinus wäre das: a*cos(b*x)'; 2*a*cos(b*x); -2*a*sin(b*x); -2*a*cos(b*x); Die Nullstellenberechnung habe ich mir selber ausgedacht, sie funktioniert einmal von 0 bis Intervallstart (negativ) und dann von 0 bis Intervallende (positiv). Daher funktioniert sie nicht, wenn das Intervall der Sinusfunktion nicht durch 0 geht (also z.B. wenn als Intervall -5 bis -2 festgelegt wurde), wie ich auch schon gestern hier geschrieben habe. Ist ziemlich schwer zu verstehen, aber es funktioniert wenigstens, solange man halt nen Intervall eingibt der durch 0 geht, aber das ist schon ok für mich :) Ich weis nicht wie ich auf Extrema und WP bei sin und cos Funktionen kommen soll mit delphi? edit16 = Intervallstart und edit17 = Intervallende!
Delphi-Quellcode:
Ähnliches gilt für die cosinusfunktion.
//Nullstelle positiv
form1.ListBox1.clear; a:=0; b:=strtofloat(form1.Edit11.text); c:=0; d:=strtofloat(form1.Edit17.text); while a<d do begin xo1:=c*(pi/b); form1.ListBox1.Items.Add(floattostr(xo1)); a:=a+(pi/b); c:=c+1; end; //Nullstelle negativ a:=0; b:=strtofloat(form1.Edit11.text); c:=0; d:=-1*(strtofloat(form1.Edit16.text)); if (strtofloat(form1.Edit17.text))>=0 then begin while a<d do begin xo1:=-1*(c*(pi/b)); if xo1<>0 then begin form1.ListBox1.Items.Add(floattostr(xo1)); end; a:=a+(pi/b); c:=c+1; end; end; |
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? |
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:
label9 = funktion
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)+')'; label10 = 1. Ableitung label11 = 2. Abl. label12 = 3. Abl. Und hier die Ableitungen für Cosinus in Delphi:
Delphi-Quellcode:
label9 = funktion
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)+')'; 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: |
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... |
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 :( |
Re: Kurvendiskussion - Nullstellen Extrema usw. mit Tchart
Zitat:
Zitat:
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. |
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:
Ja wenn du sie so in Delphi eingibst funktionieren sie aber, die Ableitungen.
//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)+')'; 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:
edit 16 ist das Startinterval, edit17 das Endinterval, z die nullstelle nr.z, n eine zählvariable im bezug auf das Intervall
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; |
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. |
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 17:52 Uhr. |
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-2025 by Thomas Breitkreuz