Интерполяция функций
Изучение линейной, квадратичной и кубической интерполяции функции. Построение интерполяционного многочлена второй степени. Составление схемы алгоритма и программы решения задачи интерполяции. Вычисление интерполирующего полинома Лагранжа в четырех узлах.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 15.09.2015 |
Размер файла | 432,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Московский Технический Университет Связи и Информатики
Кафедра информатики
Лабораторная работа по теме
«Интерполяция функций»
Студент Рагнев Анатолий
Группа БИК1202
17 вариант
Москва 2013
Задание.
1. Выбрать индивидуальное задание из табл.1.3-1 и табл. 1.3-2 для решения задач интерполяции:
2. Выполнить линейную, квадратичную и кубическую интерполяцию функции , заданной таблично (табл.1.3-2), указанным в табл.1.3-1 методом (значение t1) «расчет на ПК»:
· составить схему алгоритма и программу решения задачи интерполяции и провести контрольное тестирование на данных примера, разобранного в п. 5;
· вычислить значение интерполирующего многочлена Ньютона в точке ; для многочлена Лагранжа в точке ;
· провести оценку погрешности интерполяции по формулам практической оценки погрешности.
Построить интерполяционный многочлен второй степени (Ньютона или Лагранжа в зависимости от значения t2) в явном виде (ручной расчет). Вычислить значения построенного многочлена во всех выбранных узлах интерполяции. Сравнить полученные результаты с таблично заданными значениями.
1.Задание для интерполяции функций функция y=f(x), заданная таблично значениями в узлах интерполяции:
№ узла-i |
10 |
11 |
12 |
14 |
16 |
17 |
|
xi |
0.55 |
0.6 |
0.65 |
0.75 |
0.85 |
0.9 |
|
y=f(xi) |
-3.1385 |
-2.928 |
-2.692 |
-2.1375 |
-1.463 |
-1.077 |
· вычислим значение многочлена Ньютона в точке x=a=1.21 и значение многочлена Лагранжа в точке x=b= 0.67:
· для вычисления значения интерполирующей функции в точке x=a=1.12 методом Ньютона выберем узлы интерполяции х0=1.2, х1=1.3, х2=1.4 (x0=1.2 - ближайший к точке х=а=1.21 узел слева) шаг h=0.1;
· для вычисления значения интерполирующей функции в точке x=b=0.67 методом Лагранжа выберем номера узлов интерполяции 12,14,16,17 что соответствует значениям узлов х0=0.65, х1=0.75, х2=0.6, х3=0.85 (из указанного диапазона узлов).
2. Линейная, квадратичная и кубическая интерполяция «расчетом на ПК»:
Для обеспечения большей точности интерполяции перенумеруем узлы интерполяции: выберем узел x0=0.65 (ближайший к точке b=0.67)
Вычислим значение интерполирующего многочлена Лагранжа в точке b=0.67
Линейная интерполяция для 2 -х узлов (при n+1=2). Значение интерполирующего полинома будет следующей:
L1 =-2,77483076923077
Аналогично вычисляются значения:
Квадратичная интерполяция (при n+1=3).
L2(0.67)= -2,60176461538462
.Кубическая интерполяция (при n+1=3).
L3= -2,59304309502263
Вычислим погрешность интерполяции по формулам практической оценки погрешности.
Оценку погрешности многочлена Лагранжа произведем по формуле:
.
R1(0.67)= 0,1730661
R2(0.67)= 0,0087215
R3(0.67)= 0,0021731
Результаты интерполяции и оценки погрешности следует записать в таблицу Результаты интерполяции и оценка погрешности.
Число Узлов n+1 |
Оценка погрешности |
||
Метод Лагранжа || |
|||
2 |
-2,77483076923077 |
0,1730661 |
|
3 |
-2,60176461538462 |
0,0087215 |
|
4 |
-2,59304309502263 |
0,0021731 |
где n+1 - число узлов, - значение интерполируемого полинома, - оценка погрешности.
Схемы алгоритма интерполяции с помощью формул Лагранжа.
Рис. 1 Схема алгоритма процедуры-функции LX( ) вычисления многочлена Лагранжа к-ой степени в точке xl
Рис. 2 Схема алгоритма интерполяции по формуле Лагранжа
Программный код.
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Dim x(), y(), L() As Double
Процедура вывода массива в ListBox.
Sub vivod(ByRef x() As Double, ByRef LB As ListBox)
Dim i As Integer
Dim y As String = " "
For i = 0 To UBound(x)
y = y + Format(x(i), "00.000000") + Space(4)
Next i
y = y + "------"
LB.Items.Add(y)
End Sub
Sub vvod(ByRef a() As Double, ByVal L As ListBox)
Dim i As Integer
For i = 0 To UBound(a)
a(i) = Val(InputBox("Введите" & i & "-й элемент"))
Next i
End Sub
`Процедура функция, для вычисления многочлена Лагранжа к-ой степени в точке xl
Sub LX(ByVal k As Integer, ByVal x() As Double, ByVal y() As Double, ByVal xl As Double, ByRef pol As Double)
Dim L, l1 As Double
Dim i, j As Integer
L = 0
For i = 0 To k
l1 = 1
For j = 0 To k
If i <> j Then l1 = ((xl - x(j)) / (x(i) - x(j))) * l1
Next
L = L + l1 * y(i)
Next
pol = L
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, k As Integer
Dim xl, E1, A, pol As Double
xl = Val(TextBox1.Text)
n = CInt(TextBox2.Text)
Dim x(n), y(n), L(n) As Double
vvod(x, ListBox1)
vivod(x, ListBox1)
vvod(y, ListBox2)
vivod(y, ListBox2)
k = 1
LX(k, x, y, xl, pol)
L(k) = pol
Do While k < n
A = pol
k = k + 1
LX(k, x, y, xl, pol)
L(k) = pol
E1 = Abs(pol - A)
Loop
vivod(L, ListBox3)
TextBox4.Text = CStr(L(k - 1))
TextBox3.Text = CStr(E1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button2.Click
ListBox3.Items.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
End
End Sub
End Class
Результаты вычислений
Рис. 3 Результаты вычисления интерполирующего полинома Лагранжа в 2-х узлах (линейная интерполяция)
где х - заданная точка, L(x) - значение интерполирующего полинома.
Рис. 4 Результаты вычисления интерполирующего полинома Лагранжа в 3-х узлах (квадратичная интерполяция)
где х - заданная точка, L(x) - значение интерполирующего полинома.
Рис. 5 Результаты вычисления интерполирующего полинома Лагранжа в 4-х узлах (кубическая интерполяция)
где х - заданная точка, L(x) - значение интерполирующего полинома.
степени в явном виде («ручной расчет»)
№ узла-i |
23 |
25 |
27 |
|
xi |
1.2 |
1.3 |
1.4 |
|
y=f(xi) |
2.016 |
3.379 |
4.928 |
Построим квадратичный интерполяционный полином Ньютона.
Для построения интерполяционного многочлена Ньютона воспользуемся первой интерполяционной формулой Ньютона, так как точка интерполяции a =1.21 находится в начале таблицы значений выбранных узлов интерполяции. Ближайший к точке а узел слева х=1.21, поэтому полагаем 1.2 Для линейной интерполяции следует взять узлы 1.2и 1.3 Построим таблицу конечных разностей; Конечные разности.
интерполяция квадратичный многочлен лагранж
x |
y |
|||
1.2 |
2.016 |
1.363 |
0.186 |
|
1.3 |
3.379 |
1.549 |
||
1.4 |
4.928 |
где х - значение аргумента, у - значение функции, - первая конечная разность, - вторая конечная разность
Построение интерполяционного многочлена. Для этого используем следующую формулу:
Построенный квадратичный интерполяционный полином Ньютона имеет вид:
Вычислим значения построенного многочлена в выбранных узлах интерполяции и занесем в таблицу 4. Для сравнения туда же занесем таблично заданные значения исходной функции.
Вычисление значений построенного многочлена в выбранных узлах с использование Mathcad.
Значения построенного многочлена в выбранных узлах интерполяции и таблично заданные значения
№ узла-i |
23 |
25 |
27 |
|
xi |
1.2 |
1.3 |
1.4 |
|
P2(xi) |
2.016 |
3.379 |
4.928 |
|
y=f(xi) |
2.016 |
3.379 |
4.928 |
где xi - значение в узлах, P2(xi) - значение многочлена ньютона в узлах, y=f(xi) - таблично заданные значения.
Выводы
· для вычисления значения интерполирующей функции в точке x=a=1.12 методом Ньютона выберем узлы интерполяции х0=1.2, х1=1.3, х2=1.4 (x0=1.2 - ближайший к точке х=а=1.21 узел слева) шаг h=0.1;
· для вычисления значения интерполирующей функции в точке x=b=0.67 методом Лагранжа выберем номера узлов интерполяции 12,14,16,17 что соответствует значениям узлов х0=0.65, х1=0.75, х2=0.85, х3=0.9 (из указанного диапазона узлов).
· Линейная интерполяция для 2 -х узлов методом Ньютона L1 =-2,77483076923077
R1(0.67)= 0,1730661- Оценка погрешность
· Квадратичная интерполяция (при n+1=3) методом Ньютона
L2(0.67)= -2,60176461538462
R2(0.67)= 0,0087215- Оценка погрешность
· Кубическая интерполяция (при n+1=3) методом Ньютона
L3= -2,59304309502263
R3(0.67)= 0,0021731- Оценка погрешность
· 6. Квадратичный интерполяционный полином Ньютона имеет вид:
· 7. Значения многочлена Ньютона в узлах и таблично заданные значения совпадают.
Размещено на Allbest.ru
Подобные документы
Понятие и характеристика некоторых методов интерполяции. Вычисление значения функции между заданными точками несколькими методами. Алгоритм линейной интерполяции. Алгоритм локальной интерполяции по формуле Лагранже. Инструкция пользования программой.
курсовая работа [186,5 K], добавлен 30.05.2015Назначение и возможности пакета MATLAB. Цель интерполирования. Компьютерная реализация решения инженерной задачи по интерполяции табличной функции различными методами: кусочно-линейной интерполяцией и кубическим сплайном, а также построение их графиков.
контрольная работа [388,3 K], добавлен 25.10.2012Построение интерполяционного полинома Ньютона по значениям функции в узлах согласно методу Лагранжа. Составление алгоритмов решения задачи, их реализация на программном уровне на языке Turbo Pascal. Представление результатов работы программы Polinom.
курсовая работа [667,9 K], добавлен 01.10.2010Роль интерполяции функций в вычислительной математике. Реализация интерполирования функций полиномом Лагранжа в программном продукте MatLab. Интерполяционная формула Лагранжа. Интерполяция по соседним элементам, кубическими сплайнами. Анализ результатов.
курсовая работа [1,4 M], добавлен 10.06.2012Примеры работы с линейной интерполяцией и её результаты в графическом виде. Алгоритм кубической сплайн-интерполяции. Используемые функции линейной, обобщенной, полиномиальной регрессии. Графические возможности программы MathCAD и редактирование графиков.
презентация [2,7 M], добавлен 16.10.2013Написание программы решения технических задач языком высокого уровня Си: определение мольной теплоемкости кислорода методом интерполяции. Построение математических моделей, графиков и таблиц по результатам расчетов, составление текста программы.
курсовая работа [382,9 K], добавлен 19.05.2011Создание программы, вычисляющей значение функции, заданной таблично при помощи интерполяционного полинома Лагранжа на языке Pascal с комментариями. Диалоговое взаимодействие пользователя с программой, модули для ввода и вывода данных и основных действий.
курсовая работа [49,2 K], добавлен 02.11.2011Назначение и возможности пакета MATLAB, его основные составляющие. Набор вычислительных функций. Роль интерполяции функций в вычислительной математике. Пример интерполяции с четырьмя узлами. Интерполирование и сглаживание, схемы решения задач в MATLAB.
курсовая работа [594,5 K], добавлен 28.12.2012Составление алгоритма и программного обеспечения для реализации конечноразностных интерполяционных формул Ньютона, Гаусса и Стирлинга. Описание метода полиномиальной интерполяции. Изучение метода оптимального исключения для решения линейных уравнений.
курсовая работа [19,8 K], добавлен 25.12.2013Интерполяция данных с использованием значений функции, заданной множеством точек, для предсказания значения функции между ними. Результаты линейной интерполяции в графическом виде. Кубическая сплайн-интерполяция. Функции для поиска вторых производных.
презентация [2,7 M], добавлен 29.09.2013