ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
«УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПУТЕЙ СООБЩЕНИЯ»
Факультет | Специальность | Кафедра |
Отчет
по лабораторной работе №1
Дисциплина: Математическое моделирование в профессиональной деятельности |
Работу выполнил(а)
студент(ка) группы № | |||||
подпись, дата | инициалы, фамилия |
Работу принял
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
Екатеринбург
Оглавление
1. Постановка задачи. 3
2. Математическое описание. 4
3. Описание результатов решения задач. 5
3.1. Решение задачи в MS Excel 5
3.2. Решение задачи в MathCAD.. 7
4. Анализ полученных результатов и выводы.. 9
Список использованных источников. 10
Лабораторная работа №1. Интерполяция
Вариант 2
Постановка задачи
Построить интерполяционный кубический сплайн для функции y=f(x), заданной таблицей. Используя найденную зависимость, найти значение у в точке x = N + 0.55, где N – номер варианта.
2,1 | 2,2 | 2,3 | 2,4 | 2,5 | 2,6 | 2,7 | 2,8 | 2,9 | ||
2,312 | 2,251 | 2,418 | 2,752 | 2,7 | 2,459 | 3,022 | 3,079 | 2,42 | 2,669 | 3,241 |
Математическое описание
В большинстве практических приложений желательно соединить экспериментальные точки не ломаной линией, а гладкой кривой.
Лучше всего для этих целей подходит интерполяция сплайнами, т. е. фрагментами полиномов. Смысл сплайн-интерполяции заключается в том, что в каждом промежутке между узловыми точками (на каждом шаге интерполяции) осуществляется аппроксимация в виде определенной полиномиальной зависимости f(x). При этом для каждого шага получается свой полином, причем его коэффициенты подбираются такими, чтобы на границах шага выполнялись условия сшивки. А именно, если применяются сплайны в виде полиномов степени m, то несложно показать, что их коэффициенты можно выбрать так, чтобы обеспечить непрерывность производных порядка до (m-1)-й включительно.
Наиболее часто применяются кубические сплайны, т.е. полиномы третьей степени (кубические параболы):
Коэффициенты a,b,c,d рассчитываются независимо для каждого промежутка интерполирования, исходя из значений yi в соседних точках. Участки парабол называются кубическими сплайнами.
Приведем формулы для расчета кубической сплайн-интерполяции. Искомая функция на промежутке между xi и xi+1 вычисляется следующим образом:
где
Описание результатов решения задач
Решение задачи в MS Excel
Для построения интерполяционного кубического сплайна создадим программу на языка VBA:
Option Base 1
Function spline(periodcol As Range, ratecol As Range, X As Range)
Dim period_count As Long
Dim rate_count As Long
period_count = periodcol.Rows.Count
rate_count = ratecol.Rows.Count
If period_count <> rate_count Then
spline = "Error: Range count dos not match"
GoTo endnow
End If
ReDim xin(period_count) As Double
ReDim yin(period_count) As Double
Dim c As Long
For c = 1 To period_count
xin(c) = periodcol(c)
yin(c) = ratecol(c)
Next c
Dim N As Long
Dim i, k As Long
Dim p, qn, sig, un As Double
ReDim U(period_count - 1) As Double
ReDim YT(period_count) As Double
N = period_count
YT(1) = 0
U(1) = 0
For i = 2 To N - 1
sig = (xin(i) - xin(i - 1)) / (xin(i + 1) - xin(i - 1))
p = sig * YT(i - 1) + 2
YT(i) = (sig - 1) / p
U(i) = (yin(i + 1) - yin(i)) / (xin(i + 1) - xin(i)) - (yin(i) - yin(i - 1)) / (xin(i) - xin(i - 1))
U(i) = (6 * U(i) / (xin(i + 1) - xin(i - 1)) - sig * U(i - 1)) / p
Next i
qn = 0
un = 0
YT(N) = (un - qn * U(N - 1)) / (qn * YT(N - 1) + 1)
For k = N - 1 To 1 Step -1
YT(k) = YT(k) * YT(k + 1) + U(k)
Next k
Dim klo, khi As Long
Dim H, B, A As Double
klo = 1
khi = N
Do
k = khi - klo
If xin(k) > X Then
khi = k
Else
klo = k
End If
k = khi - klo
Loop While k > 1
H = xin(khi) - xin(klo)
A = (xin(khi) - X) / H
B = (X - xin(klo)) / H
Y = A * yin(klo) + B * yin(khi) + ((A ^ 3 - A) * YT(klo) + (B ^ 3 - B) * YT(khi)) * (H ^ 2) / 6
spline = Y
endnow:
End Function
В результате выполнения программы получены значения:
В точке у (2,55) = 2,695.
Построены графики зависимостей.