| |
|
|
p.specht
| Will man aus Messwerten y zu verschiedenen, - nicht unbedingt in gleichen Abständen vorliegenden - x-Werten ohne großen Umweg über Polynome eine Praxis-Tabelle mit x-Werten in gleichen Abständen machen, bietet sich das Verfahren der Herren Aitken und Neville an. Dabei können ggf. leicht weitere Messwerte hinzugefügt werden, damit das Ergebnis präziser wird.
WindowTitle "Interpolation nach Aitken-Neville"
' Q: Wikipedia, div. Fachzeitschriften
WindowStyle 24
Window 0,0 - %maxx,%maxy
print " Die Interpolationsformel von Aitken und Neville ist dann"
print " besonders effizient, wenn aus etwa doppelt so vielen Stütz-"
print " stellen nur wenige Werte rasch interpoliert werden sollen,"
print " ohne daß das Interpolationspolynom selbst gefragt ist."
print
declare x![25],y![25],n&,i&,a!,b!,s!
declare p![25,25],k&,p1!,p2!
print " Eingabeteil:"
print " Anzahl Wertepaare [max. 25]: ";:input n&
whileloop 0,n&-1:i&=&Loop
print int(i&+1);". Wertepaar: x = ";:input x![i&]
print " y = ";:input y![i&]
endwhile
print
print " Bereich, in dem y-Werte interpoliert werden sollen:"
print " Von: ";:input a!
print " bis: ";:input b!
print " Schrittweite: ";:input s!
print
print " Berechnung starten mit [Taste]!"
waitinput
cls
print
print " Ergebnis:"
print " x y "
print "-----------------------------------------------"
k&=0
whileloop 0,n&-1:i&=&Loop
p![i&,k&]=y![i&]
endwhile
Naechstes:
Whileloop 0,n&-2:k&=&Loop
whileloop k&+1,n&-1:i&=&Loop
p1!=(a!-x![i&-k&-1])*p![i&,k&]-(a!-x![i&])*p![i&-1,k&]
p2!=x![i&]-x![i&-k&-1]
p![i&,k&+1]=p1!/p2!
endwhile
endwhile
print a!,p![n&-1,n&-1]'= Ergebnisse
if a!<b!:a!=a!+s!:goto "Naechstes":endif
Print "OK.";:waitinput:End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 19.07.2021 ▲ |
|
|
|