Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Интерполирование функций многочленом Лагранжа

Автор:   •  Октябрь 12, 2022  •  Лабораторная работа  •  712 Слов (3 Страниц)  •  177 Просмотры

Страница 1 из 3

МинобрнаукиРоссии

Юго-Западныйгосударственныйуниверситет

Кафедра программной инженерии

Лабораторная работа №3

По дисциплине «Вычислительная математика»

«ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ МНОГОЧЛЕНОМ ЛАГРАНЖА»

Выполнил:        студент группы ПО-12б

Крюков Н.М.

Проверил:        к.т.н.,доцент

КочураЕ.П.

Курск–2022.


Цель работы

1.Изучение основных определений и положений теории интерполяции функции.

2.Изучение методов локальной и глобальной интерполяции. 3.Интерполирование функций многочленом Лагранжа.

Индивидуальное задание

1.Написать интерполяционный многочлен Лагранжа для функции f(x), которая задана на отрезке [x0,xn] в четырех точках (узлах). Значения функции взять из таблицы заданий Оценить погрешность интерполяции, предполагая, что f (n+1)(ξ)≤1.

 2.Разработать текст программы для приближенного вычисления значений функции f(x) и погрешности интерполяции в трех любых точках отрезка [x0,xn],

3.На ЭВМ набрать и отладить программу.

4.Провести вычисления функции в точках между заданными узлами. Провести интерполяцию с помощью программы MATHCAD и сравнить результаты.

Вариант 5:

[pic 1]


Тексты программ

void Maths (double xx)

{

    double[] x = new double[] { 1.0, 1.2, 1.4, 1.6 };

    double[] y = new double[] { -8.0, -3.0, -4.0, 0 };

    double a = ((xx - x[1]) * (xx - x[2]) * (xx - x[3])) / ((x[0] - x[1]) * (x[0] - x[2]) * (x[0] - x[3]));

    double b = ((xx - x[0]) * (xx - x[2]) * (xx - x[3])) / ((x[1] - x[0]) * (x[1] - x[2]) * (x[1] - x[3]));

    double c = ((xx - x[0]) * (xx - x[1]) * (xx - x[3])) / ((x[2] - x[0]) * (x[2] - x[1]) * (x[2] - x[3]));

    double d = ((xx - x[0]) * (xx - x[1]) * (xx - x[2])) / ((x[3] - x[0]) * (x[3] - x[1]) * (x[3] - x[2]));

    double w = (xx - x[0]) * (xx - x[1]) * (xx - x[2]) * (xx-x[3]);

    double[] l = new double[] { a ,b, c, d };

    double Ln = 0;

    for (int i = 0; i <= 3; i++)

    {

       Ln += y[i] * l[i];

    }

    double Rn = Math.Abs(w) / (1*2*3*4);

    double qRn =Math.Abs(Rn) / Math.Abs(Ln);

    Console.WriteLine("Ln="+Ln+" " +" Rn="+Rn+" "+"qRn="+qRn);

 }

Maths(1.05);

Maths(1.3);

Maths(1.5);

[pic 2]

Рис.1 – Результат работы программы на С#

[pic 3]

Рис.2 – Результат вычислений на SMathStudio

Таблица результатов расчета на ЭВМ\

...

Скачать:   txt (7.1 Kb)   pdf (442.9 Kb)   docx (325.6 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club