НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им.
Лабораторная работа
по вычислительной математике №3
Вар. 13
Выполнил:
Студент гр. 10-В-1
Проверила:
НИЖНИЙ НОВГОРОД
2012 г.
Задание:
Найти приблизительное значение функции при данном значении аргумента с помощью интерполяционного многочлена Лагранжа, еcли функция задана в равноотстоящих узлах таблицы;
X | Y |
0.210 | 4.83170 |
0.215 | 4.72261 |
0.220 | 4.61855 |
0.225 | 4.51919 |
0.230 | 4.42422 |
0.235 | 4.33337 |
x=0.2165
Теоретические сведения:
Блок-схема алгоритма
![]()
![Блок-схема: данные: Описание массивов x[6],y[6]](/text/80/142/images/image003_12.gif)
![]()
![]() |



Ход работы программы
Результат работы программы

Вывод:
В данной работе был реализован метод аппроксимации дискретно заданных функций многочленом Лагранжа.
В ходе работы были получены решения, достаточно хорошо согласующиеся с характером исходных данных. При аппроксимации функций получали значения, практически не нарушающие плавность хода функции между дискретными точками.
Приложение:
#include<iostream. h>
#include<conio. h>
#include<stdio. h>
float x[6]={1.375,1.380,1.385,1.390,1.395,1.400};
float y[6]={5.04192,5.17744,5.32016,5.47069,5.62968,5.79788};
float X=1.3862,Y;
int N=6;
float mp(int j);
int main(void)
{
printf("Lagrange method\n x y\n");
for(int j=0;j<6;j++)
printf("\n%3.3f %f ",x[j],y[j]);
getch();
Y=0;
for(int t=0; t<N; t++)
Y=Y+mp(t)*y[t];
cout<<"\nx=" <<X<<" y="<<Y;
getch();
return 0;
}
float mp(int j)
{
float res=0,m=1,p=1;
for(int i=0;i<N;i++)
if(i!=j) m=m*(X-x[i]);
for(int i=0; i<N; i++)
if(i!=j) p=p*(x[j]-x[i]);
res=m/p;
return res;
}



