Текст подпрограммы и версий ip01r.zip , ip01d.zip |
Тексты тестовых примеров tip01r.zip , tip01d.zip |
Текст подпрограммы и версий ( Си ) ip01r_c.zip , ip01d_c.zip |
Тексты тестовых примеров ( Си ) tip01r_c.zip , tip01d_c.zip |
Текст подпрограммы и версий ( Паскаль ) ip01r_p.zip , ip01e_p.zip |
Тексты тестовых примеров ( Паскаль ) tip01r_p.zip , tip01e_p.zip |
Вычисление коэффициентов интерполяционного полинома.
Пусть заданы узлы сетки x1, x2, ..., xN, упорядоченные по возрастанию: x1 < x2 < ...< xN и значения y1, y2, ..., yn функции f (x) в узлах этой сетки. Подпрограмма IP01R вычисляет коэффициенты ci ( i = 1, 2, ..., N ) интерполяционного полинома
P(x) = c1 + c2 x + c3 x2 + ... + cN xN-1 степени N - 1.
Отметим, что коэффициенты ci интерполяционного полинома удовлетворяют системе линейных алгебраических уравнений
| 1 x1 x12 ... x1N-1 | | c1 | | y1 | | 1 x2 x22 ... x2N-1 | | c2 | = | y2 | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 1 xN xN2 ... xNN-1 | | cN | | yN | с матрицей Вандермонда.
Решение этой системы с транспонированной матрицей осуществляется подпрограммой ASV1R .
Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1973.
SUBROUTINE IP01R (X, Y, N, COF, S)
Параметры
X - | вещественный вектор длины N, содержащий узлы заданной сетки x1, x2, ..., xN, упорядоченной по возрастанию; |
Y - | вещественный вектор длины N, содержащий значения y1, y2, ..., yN функции f (x) в узлах заданной сетки; |
N - | количество узлов сетки, N ≥ 2 (тип: целый); |
COF - | вещественный вектор длины N, содержащий вычисленные коэффициенты интерполяционного полинома; |
S - | вещественный вектор длины N, используемый в подпрограмме в качестве рабочего. |
Версии
IP01D - | вычисление коэффициентов интерполяционного полинома в режиме удвоенной точности; при этом параметры X, Y, COF и S должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
DIMENSION X(5), Y(5), COF(5), S(5), X1(5), Y1(5), DATA PI /3.14159265/ A = 0.0 B = 1.0 N = 5 DO 1 K = 1, N X1(K) = (B + A)/2 + ((B - A)/2)*COS( PI*(2*K - 1)/(2*N) ) 1 Y1(K) = SIN(X1(K))/X1(K) DO 2 J = 1, N K = N - J + 1 X(K) = X1(J) 2 Y(K) = Y1(J) CALL IP01R (X, Y, N, COF, S) Результаты: COF = ( 0.999999, 0.202257E-04, -0.166825, 0.464717E-03, 0.781631E-02 )