Опубликовано: 2018-07-30 08:00:00
Интерполяция
Интерполяция, интерполирование – в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Многим из тех, кто сталкивается с научными и инженерными расчётами, часто приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения. Такая задача называется аппроксимацией. Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных.
В качестве стартового примера простенькая программа изображающая график функции, полученный вследствие произведённой интерполяции Лагранжа.
- DECLARE FUNCTION LAGRANGE# (X#(), Y#(), N%, ARGX#)
- DIM XXX#(64), YYY#(64)
- TOCH% = 6: STP% = 90
- RANDOMIZE TIMER: SCREEN 12
- OUT &H3C8, 1: OUT &H3C9, 0: OUT &H3C9, 5: OUT &H3C9, 24
- SNOVA: LINE (0, 0)-(639, 479), 1, BF
- LINE (5, 5)-(634, 474), 15, B
- COLOR 14: LOCATE 2, 31: PRINT "LAGRANGE POLYNOMIAL"
- LOCATE 3, 34: PRINT "INTERPOLATION"
- LOCATE 25, 29: COLOR 12: PRINT "DRAWING... PLEASE WAIT!"
- FOR P% = 1 TO TOCH%
- XXX#(P%) = P% * STP%: YYY#(P%) = (RND * 100) - 50
- NEXT
- FOR RIS% = STP% TO TOCH% * STP%
- FUNCZ# = LAGRANGE#(XXX#(), YYY#(), TOCH%, CDBL(RIS%))
- PSET (RIS%, 240 - FUNCZ#), 15
- IF RIS% MOD STP% = 0 THEN
- CIRCLE (RIS%, 240 - YYY#(RIS% \ STP%)), 3, 12
- PAINT (RIS%, 240 - YYY#(RIS% \ STP%)), 14, 12
- END IF
- NEXT
- LOCATE 25, 26: COLOR 10: PRINT "ENTER - ANOTHER ESC - EXIT"
- DO
- K$ = INKEY$
- IF K$ = CHR$(13) GOTO SNOVA
- LOOP WHILE (K$ <> CHR$(27))
- FUNCTION LAGRANGE# (X() AS DOUBLE, Y() AS DOUBLE, N AS INTEGER, ARGX AS DOUBLE)
- DIM C AS DOUBLE, S AS DOUBLE
- S = 0
- FOR I = 0 TO N
- C = 1
- FOR J = 0 TO N
- IF (I <> J) THEN C = C * (ARGX - X(J)) / (X(I) - X(J))
- NEXT
- S = S + C * Y(I)
- NEXT
- LAGRANGE = S
- END FUNCTION
Рисунок 1 – Исходный текст интерполяции
Рисунок 2 – Результат построения интерполяции
Спасибо за прочтение этой статьи.