| |
|
|
p.specht
| un Algorithmus aus den Urschleimzeiten qui mathématique, comme verschiedene Funktionen überhaupt erstmals - zumindest numerisch - gelöst volonté konnten. autrefois versuchte on, sich par händische Berechnung mittels parchemin et Federkiel à qui Lösungen heranzutasten. Pech, si es juste plusieurs Lösungen donnais - on erhielt, dépendant vom Startwert, toujours seulement une en. Daher aussi qui nom "Falsche Regel".
Titre de la fenêtre "Regula falsi: Nullstellensuche sur Sekanten-Abschnitte"
' Abt. "Historische Algorithmen"
' (D) Demoware mai 2012 P. Specht; sans jedwede Gewähr!!!
' Gleichungslösung par "Herantasten", Indikator: Fehlerkurvenanstieg
' Verwendet ici justement qui proc Formel_1
' Startwert ist responsable, trop quel individuel Solution
' de ggf. mehreren Lösungen qui Algorithmus jeweils tendiert
Font 2:Randomiser:Cls rnd(8^8):set("decimals",18)
Déclarer a!,x!,i&
Var imax&=1000' Maximale numéro Näherungsschritte
Begin:
imprimer "\n Startwert pour Lösungssuche (kritisch!): ";
input a!
x!=regulafalsi(a!)
si x!=val("4.9406564584124654E-323")
imprimer " Solution pour ";imax&;" Schritten pas trouvé!"
d'autre
imprimer " Solution: x = ";x!
imprimer " trouvé pour ";i&;" Schritten."
imprimer " Funktionswert: ";formel_1(x!)'formel_0(x!)
endif
WaitInput
cas %csrlin>22:cls
goto "Begin"
proc regulafalsi
parameters a!' Startwert
var il!=10^-13
Déclarer x0!,x1!,x2!,y0!,y1!
x2!=a!
x1!=a!+0.1' Soll seulement juste trop Beginn Division par zéro vermeiden
i&=0
tandis que i&<=imax&
x0!=x1!:x1!=x2!' next generation vorbereiten
rem y0!=formel_0(x0!) : y1!=formel_0(x1!)' Testfunktion Parabel
y0!=formel_1(x0!) : y1!=formel_1(x1!)' Polynom 3. Grades
si (y1!-y0!)<>0
x2! = x0! - y0! * (x1!-x0!) / (y1!-y0!)
d'autre
imprimer " avertissement: procéder wurde instabil!"
pause
endif
cas abs(x2!-x1!)<=il!:pause
inc i&
endwhile
'chez Error: x2 = -INF + 1e-307 =
'kleinstmöglicher DoublePrecision Floatwert<>0
cas i&>imax&:x2!=val("4.9406564584124654E-323")
return x2!
endproc
proc Formel_0
parameters x!
declare y!
'---------------------------------------------------------------
' Formel zuvor stets sur homogene forme apporter: ... = 0
' Ges: Solution trop x^2 = +4 , wird alors (beide Seiten: - 4) trop:
y!=x!*x! - 4' avec y = Abweichung de 0 (Irrtumsvariable)
' Verfahrensziel: cherche ab Startwert a un x, cela y trop zéro pouvoir
' Tipp pour Schnittpunkt 2il Funktionen: Differenzfunktion bilden!
'---------------------------------------------------------------
return y!
ENDPROC
proc Formel_1
parameters x!
declare y!
'-------------------------------------
' trop lösen: x^3-2*x^2+12*x = 100
y!=x!*x!*x!-2*x!*x!+12*x!-100' = 0
'-------------------------------------
return y!
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 07.05.2021 ▲ |
|
|
|