close

Вход

Забыли?

вход по аккаунту

?

Лаба6 3

код для вставкиСкачать
Московский Государственный Университет Связи и Информатики
Кафедра Информатики Лабораторная работа №6_3 по дисциплине информатика
За 3 семестр
" Интерполяция функций"
Студента 2 курса
Тарасова Евгения
Группа БИН1207
Задание
1. Выбрать индивидуальное задание из табл. 6.3-1 и табл. 6.3-2 для решения задач интерполяции:
* из табл. 6.3-1 выбираем значения параметров t1 и t2, а также значения x=a (для построения многочлена Ньютона) и x=b (для построения многочлена Лагранжа); * из табл. 6.3-2 в соответствии с методикой выбора узлов интерполяции по значению x=a выбираем узлы интерполяции (из отрезка [0.05;1.55] - область задания интерполируемой функции) и значения функции в этих узлах. Число узлов определяется заданной степенью интерполяционного многочлена в соответствии с п.2 и п.3. Следует обратить внимание, что:
o если точка x=a расположена ближе к левому концу отрезка, выбираемого из табл. 6.3-2, то для построения первой формулы Ньютона необходимо выбрать узлы ( - ближайший к точке x=a узел слева);
o если точка x=a расположена ближе к правому концу отрезка, выбираемого из табл. 6.3-2, то используют вторую формулу Ньютона и необходимо выбрать узлы (xn - ближайший к точке x=a узел справа);
o если точка x=a расположена примерно в середине таблицы, то следует выбрать ту формулу, которая обеспечит меньшую погрешность.
2. Выполнить линейную, квадратичную и кубическую интерполяцию функции , заданной таблично (табл. 6.3-2), указанным в табл. 6.3-1 методом (значение t1) "расчет на ПК":
* составить схему алгоритма и программу решения задачи интерполяции и провести контрольное тестирование на данных примера, разобранного в п. 5;
* вычислить значение интерполирующего многочлена Ньютона в точке ; для многочлена Лагранжа в точке ;
* провести оценку погрешности интерполяции по формулам практической оценки погрешности.
3. Построить интерполяционный многочлен второй степени (Ньютона или Лагранжа в зависимости от значения t2) в явном виде (ручной расчет). Вычислить значения построенного многочлена во всех выбранных узлах интерполяции. Сравнить полученные результаты с таблично заданными значениями. 4. Получить решения для индивидуального варианта задания с помощью математических пакетов. 1. Задание для интерполяции функций
* функция y=f(x), заданная таблично значениями в узлах интерполяции:
№ узла-i212324262729xi1,11,21,251,351,41,5y=f(xi)0,8272,0162,6754,12954,9286,675 * вычислим значение многочлена Ньютона в точке x=a=1.37 и значение многочлена Лагранжа в точке x=b= 1.26: * для вычисления значения интерполирующей функции в точке x=a=1.37 методом Ньютона выберем узлы интерполяции х27=1.4, х26=1,35, х25=1,3, х24=1,25 (x26=1,035 - ближайший к точке х=а=1,37 узел слева); * для вычисления значения интерполирующей функции в точке x=b=1.26 методом Лагранжа выберем номера узлов интерполяции 23, 24, 26, 27, что соответствует значениям узлов х23=1.2, х24=1.25, х26=1.35, х27=1.4 (из указанного диапазона узлов). 2. Линейная, квадратичная и кубическая интерполяция "расчетом на ПК":
Public Class Form1
Sub line(ByVal raz(,) As Single, ByVal x As Single, ByRef znach As Single)
znach = raz(0, 1) + raz(0, 2) * (x - raz(0, 0))
End Sub
Sub qad(ByVal raz(,) As Single, ByVal x As Single, ByRef znach As Single)
znach = raz(0, 1) + raz(0, 2) * (x - raz(0, 0)) + raz(0, 3) * (x - raz(0, 0)) * (x - raz(0, 1))
End Sub
Sub qub(ByVal raz(,) As Single, ByVal x As Single, ByRef znach As Single)
znach = raz(0, 1) + raz(0, 2) * (x - raz(0, 0)) + raz(0, 3) * (x - raz(0, 0)) * (x - raz(0, 1)) + raz(0, 4) * (x - raz(0, 0)) * (x - raz(0, 1)) * (x - raz(0, 2))
End Sub
Sub conraz(ByVal x() As Single, ByVal y() As Single, ByVal n As Integer, ByRef raz(,) As Single, ByRef t As String)
For i = 0 To UBound(y)
raz(i, 0) = x(i)
raz(i, 1) = y(i)
Next
For j = 2 To n + 1
For i = 0 To UBound(y) - j + 1
raz(i, j) = raz(i, j - 1) - raz(i + 1, j - 1)
Next
Next
For i = 0 To UBound(y)
For j = 0 To n + 1
t = t + CStr(Format(raz(i, j), "0.0000")) + Space(3)
Next
t = t + vbNewLine
Next
TextBox1.Text = t
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Integer = 3
Dim t As String = ""
Dim znach As Single
Dim x() As Single = {1.4, 1.35, 1.3, 1.25}
Dim y() As Single = {4.928, 4.1295, 3.379, 2.675}
Dim raz(UBound(y), n + 2) As Single
conraz(x, y, n, raz, t)
line(raz, 1.37, znach)
TextBox2.Text = znach
qad(raz, 1.37, znach)
TextBox3.Text = znach
qub(raz, 1.37, znach)
TextBox4.Text = znach
End Sub
End Class
Документ
Категория
Рефераты
Просмотров
16
Размер файла
71 Кб
Теги
лаба
1/--страниц
Пожаловаться на содержимое документа