zeit geht ins unermessliche < Mathe-Software < Mathe < Vorhilfe
|
hallo leute
ich hab mir eine funktion geschrieben, die mir eigentlich ein polynom ausspucken soll (neville-algorithmus oder so)
bedeutet man hat n stützstellen für ein polynom und berechnet damit das polynom
hier erstmal der code:
p(i,j) = IF(i = j,
y sub i,
p(i, j - 1) + (a - x sub i)·(p(i + 1, j) - p(i, j - 1))·(x sub j - x sub i)^(-1))
da für den persönlichen gebrauch gemacht sind keine vorkehrungen zur richtigen benutzung gesetzt, da ich intelligenz beim anwender voraussetze :D
spaß beiseite.
i,j [mm] \in \IN, [/mm] i<j
für gebrauch mit derive empfielt sich als startwert sogar i=1 (x und y liegen dann als vektoren vor)
und a is der parameter des interpolierenden polynoms.
die frage ist jetzt: für j-i = 3 is der rechner nach spätestens 7 sekunden fertig
wo liegt das problem bei j-i = 4? mein pc rechnet jetzt seit 10k sekunden daran rum und kriegt es nicht geregelt o.O
wenn man den letzten schritt per hand macht, sprich ich lasse ihn p(1,4) und p(2,5) ausrechnen, und mit diesen ergebnissen dann p(1,5) = p(1,4) + [mm] (a-x_1) (p(2,5)-p(1,4))(x_5-x_1)^-^1 [/mm] ist er auch nach ein paar sekunden fertig
aber der trick versagt ja schon wenn j-i=5 ist, da muss man ja wieder mehrere schritte zusammenfügen und hat somit wieder viel zeit zu nutzen, was der pc einem eigentlich abnehmen sollte
woran liegt das? ich hatte mit [mm] 3^n [/mm] zeitbedarf gerechnet aber 10k und mehr steht in keinem sinnvollen verhältnis zu 7.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Mi 17.11.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|