Интерполяция функций

Изучение линейной, квадратичной и кубической интерполяции функции. Построение интерполяционного многочлена второй степени. Составление схемы алгоритма и программы решения задачи интерполяции. Вычисление интерполирующего полинома Лагранжа в четырех узлах.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.