AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mathematik ??

Ein Thema von GLaforge · begonnen am 28. Mär 2004 · letzter Beitrag vom 18. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von GLaforge
GLaforge

Registriert seit: 16. Nov 2003
Ort: Halle
106 Beiträge
 
Delphi 6 Enterprise
 
#1

Mathematik ??

  Alt 28. Mär 2004, 12:55
Hi,
hab da ein Problem . Muss für die Schule ein Programm schreiben ,welches für eine kubische Gleichung d.h y=ax^3+bx^2+cx+d die Nullstellen ausgibt. Das Problem ist, dass die Normalform für Nullstellenberechnung nur für quadratische Gleichungen gilt. Normalerweise bedient man sich bei kubischen Gleichungen der Polynomdivision, da muss man aber eine Nullstelle erraten um mit dieser dann die Polynomdivision durchzuführen.
Ein Beispiel:

f(x)=y=x^3+x^2-x-1 / die erratene Nst ist 1

(x^3+x^2-x-1)/(x-1) / hiermit Polynomdivision

Ergebnis: x^2+2x+1 / nun weiter mit Normalform


Problem nun,wie findet das Programm die erste Nst um Polynomdivision durchzuführen (wie Polynomdivision realisieren??). Ab der quadratischen Gleichung ist es ganz easy, aber bis dorthin kommen. Eine Idee von mir war eventuell das Bisektions- bzw. Iterationsverfahren. Hierfür benötige ich jedoch zwei Grenzen indenen die Nullstelle höchstwahrscheinlich liegt.Wie ihr merkt ist hier schon etwas höhere Mathematik am Werke , also bitte nur Antworten von Leuten die wissen wovon ich spreche( ist nicht bös gemeint aber einfach zu wichtig). Ich benötige keinen kompletten Quelltext, sondern nur eine math.-infor. Hilfe die mir einen Ansatz gibt, wie ich dieses Problem im Programm realisieren kann. Bitte bedenkt,dass ich nur Schüler bin. Behandle Delphi gerad erst im 2 HJ, beschäftige mich aber auch in der Freizeit viel damit.
Schonmal vielen Dank

cu
Cogito ergo sum - Ich denke also bin Ich
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#2

Re: Mathematik ??

  Alt 28. Mär 2004, 14:10
Na für quadratische Gleichungen gibt es die pq-Formel. Und für kubische Gleichungen gibts auch eine solche Formel. Ich weiss nur leider nicht wie die geht. Google ma!
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#3

Re: Mathematik ??

  Alt 28. Mär 2004, 14:24
Mein Mathelehrer hat mal sowas geschrieben
Da kann man die Progs download

Wenn es egal ist, dass du die Progs nicht selbst geschrieben hast...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von GLaforge
GLaforge

Registriert seit: 16. Nov 2003
Ort: Halle
106 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Mathematik ??

  Alt 28. Mär 2004, 14:31
danke @yankee, brauch aber schon ein wenig Quelltext. Diese Problemstellung ist nur ein kleiner Punkt in meinem Gesamtprogramm.Trotzdem danke für deine Mühe.
Cogito ergo sum - Ich denke also bin Ich
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#5

Re: Mathematik ??

  Alt 28. Mär 2004, 14:39
Da ist auch 'ne e-mailAdresse drin. Du lannst den ja mal fragen, ober er dir einen Teil des Quelltextes gibt. Seine Progs sind alle in Delphi.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#6

Re: Mathematik ??

  Alt 28. Mär 2004, 14:40
Hallo GLaforge,

wie Jörn schon richtig gesagt hat, gibt es auch soetwas wie eine pq-Formel nur eben für Gleichungen dritten Grades. Die Formel ist allerdings ziemlich häßlich, sprich ziemlich lang und unübersichtlich. Wie genau du dein Problem jetzt löst, hängt ganz davon ab, wie genau die Lösung aussehen soll. Wenn du die exakte Lösung haben willst, dann brauchst du unbedingt, diese Lösungsformel (Such mal im Internet). Wenn du nur Näherungswerte brauchst, dann kannst du das ja so, wie du beschrieben hast, annähern (Bisektionsverfahren). Ein Polynom dritten Grades hat ja bekanntlich immer mindestens eine Nullstelle, deswegen sollte das klappen.
Wenn du das so machst, kannst du danach mit gerundeten Werten die Polynomdivision machen, dass ist dann zwar nicht exakt und die Division wird nicht ohne Rest klappen (den mussst du dann unter den Tisch fallen lassen), aber als Näherungslösung sollte es auf jeden Falls ausreichen.

Grüße
Seniman
  Mit Zitat antworten Zitat
dummer_info_schüler

Registriert seit: 28. Mär 2004
Ort: Cottbus
26 Beiträge
 
#7

Re: Mathematik ??

  Alt 28. Mär 2004, 14:47
Also ich würde ´ne Inputbox einbauen und der Anwender muss raten.
In Mathe haben wir aber mal gelernt, dass die Nullstelle bei den kubischen Funktionen häufig ein Teiler des Absolutgliedes, also von <d> ist. Dementsprechend wären deine Grenzen zwischen d und -d.

Muss aber nicht immer ein (ganzzahliger) Teiler sein. Beispiel:
Die Funktion
-4x^3 -2x^2 -6= 0 hat nur eine Lösung und zwar (ungefähr) bei
x= -1,337944335.
Dann wünsch ich dir noch viel Spaß beim NST finden!
(Hoffe, ich habe dir ´n bisschen geholfen)
  Mit Zitat antworten Zitat
Benutzerbild von GLaforge
GLaforge

Registriert seit: 16. Nov 2003
Ort: Halle
106 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Mathematik ??

  Alt 28. Mär 2004, 14:48
@ Seniman:
Mir würde ja ein gerundeter Wert reichen, muss nur zwei Stellen nach dem Komma korrekt sein. Das Problem nun bei Bisektion sind die Grenzen, die das Programm kennen muss. Wie ermittelt das Prog diese Grenzen ohne das Zutun vom Benutzer? Die kubische Lösungsgleichung hab ich mir gerade zu Gemüte geführt, muss sagen obwohl ich Ma-Leistungskurs belege schon ein wenig undurchsichtig und ein zu großer Programmieraufwand. Also wenn du mir mit den Bisektionsgrenzen behilflich sein könntest wäre ich dir sehr dankbar.

cu
Cogito ergo sum - Ich denke also bin Ich
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#9

Re: Mathematik ??

  Alt 28. Mär 2004, 21:57
Hallo GLaforge,

der dumme-info-schüler hat recht:
Du kannst das Polynom in die sog. linearfaktoren zerlegen. Heißt das Polynom z.B. x^3+ax^2+bx+c, und die Nullstellen sind e,f und g (tschuldige mir fallen keine besseren Buchstaben ein), dann gilt:
x^3+ax^2+bx+c=(x-e)(x-f)(x-g) (Vielleicht hast du das schon in der Schule gemacht, sonst frag nochmal nach, warum das so ist).
Jedenfalls, wenn man die rechte seite Ausmultipliziert bekommt man
(x-e)(x-f)(x-g)
=x^3-(e+f+g)x^2+(ef+fg+ge)x-efg
Vergleicht man wieder mit dem Ursprungspolynom ergibt sich: c=-efg, d.h. wenn bei dem gegebenen Polynom der Koeffizient vor dem x^3 eins ist, dann ist das absolute Glied c das Produkt aus den Nullstellen.

Daraus folgt, dass mindestens eine Nullstelle zwischen c und -c liegt (denn nicht alle drei Nullstellen können größer als c sein, denn dann wäre efg auch größer als c)

Als Startinterval würde ich deswegen [-c,c] vorschlagen, bzw [c,-c], wenn c negativ ist.
Es gibt allerdings noch ausnahmen, in denen das oben genannte nicht gilt, nämlich dann, wenn das Polynom nur eine Nullstelle hat. In dem Fall kann ich dir nicht weiterhelfen.

Grüße
Seniman
  Mit Zitat antworten Zitat
runger
(Gast)

n/a Beiträge
 
#10

Re: Mathematik ??

  Alt 29. Mär 2004, 06:54
hallo lieber Schüler,

mal ein ganz unmathematischer Ansatz:
Du rechnest den Wert für f(0) aus.
Dann steppst du die x-Achse sowohl positiv als auch negativ entlang.
Meinetwegen in 10er Schritten bis das Ergebnis das Vorzeichen wechselt und schon hast du dein Interval.

So würde ich das ansetzen.
Rainer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz