III. Решение с помощью встроенной функции линейн():
введем экспериментальные данные в диапазон A4:B14;
поскольку зависимость ф3(x) есть линейная комбинация функций {1, x^2, cos(x+1) } и параметров { a0, a1, a2 }, то проведем расчет необходимых данных
ячейка D4: =A4^2 -» D5:D14
ячейка E4: =COS(A4+1) E5 : E14
проведем расчет с помощью статистической функции диапазон G8:I12: =ЛИНЕЙН(B4:B14;D4:E14;;1)
В результате выполнения будут получены значения искомых параметров и данные для анализа
Решение в MathCad.
Задание 2.
Задачи Коши для обыкновенного дифференциального уравнения второго порядка имеет вид p*y''(x)+q*y'(x)+r*y(x) = F(x) , y(a)=y0 , y'(a)=y1
Найти решение y(x), x =[a; b], задачи Коши, используя
Аналитический способ (рекомендуется использовать MathCad )
Метод Рунге-Кутты IV порядка точности:
вычислить «вручную» значения y(a+h), y'(a+h), где при разбиении N
составить макрос (процедуру) в VBA и выполнить его в Еxcel с выводом результатов на рабочий лист при разбиении N.
Встроенные возможности системы MathCad
II Построить графики функции y(x), x =[a; b], для пунктов 1, 2(б), 3.
Раздел А. Вариант 4
a= 1, b=3, N=8
Раздел В вариант 6:
p= -1, q=-3, r=0, y0= -1, y1= - 4, F(x) = 3x -3
Подставив данные по варианту, получаем вид дифференциального уравнения, которое нужно решить :
С начальными условиями: y(1) = - 1 , y'(1) = - 4
2.1. Аналитический способ с использованием мс.
1.Вводим данные переменных по варианту, выбирая их из раздела Б.
2.Формируем дифференциальное уравнение, записываем начальные условия.
3. Решаем характеристическое уравнение, находим значения λ1 и λ2.
4. Поскольку решение характеристического уравнения есть действительные и различные корни, то общее решение диф. уравнения принимает вид:
5.Записываем вид частного решения диф. ур-ния.
6. Подставляем частное решение в левую часть, получаем вид функции.
7. Выделяем коэффициенты при функциях . Составляем систему уравнений и находим коэффициенты k1, k2.
8. Следовательно, мы имеем уже конкретное решение диф. уравнения, которое состоит из суммы общего решения (λ1 и λ2уже найдены) и частного решения ( k1, k2) также уже найдены).
9. Значения коэффициентов с1 и с2 найдем, используя начальные условия:
y(1) = 1 , y'(1) = - 4
10.Получаем производную от найденного решения, проверяем его, получая значения функций в контрольных точках, строим графики.
Листинг решения из MathCad.
2.2.a. Вычислить «вручную» значения y(a+h), y'(a+h), где при разбиении N.
Рассмотрим заданное дифференциальное уравнение второго порядка.
-1*y''(x)-3*y’(x)= 3*x - 3 с начальными условиями y(1) = - 1; y’(1) = - 4
Преобразуем его в систему двух дифференциальных уравнений первого порядка:
введем замену z(x) = y'(x), тогда z'(x) = y''(x);
дифференциальное уравнение примет вид
-1*z’(x) - 3*z(x) = 3*x - 3
y(1) = -1; y’(1) = - 4
сделаем подстановку и сформируем систему диф. уравнений 1-го порядка.
y(1) = -1; y’(1) = - 4
Вспомогательная функция примет вид:
D(x,y(x),z(x)) =
Используя формулы метода Рунге-Кутты IV порядка, вычислим значения функции y(1+h), y’(1+h) при h= (3-1)/8 = 1/4.
На начальном шаге имеем значения по условию: x0 = 1, y0 = - 1, z0 = - 4
Тогда на следующем шаге имеем:
Вычисления проводились с использованием МС, чтобы не делать глупых ошибок при вычислении дробей.
2.2.б. Составить макрос (процедуру) в VBA и выполнить его в Еxcel с выводом результатов на рабочий лист при разбиении N.
1) В VBA составим процедуру, использующую метор Рунге-Кутты для вычисления значений функций, являющихся решением дифференциального уравнения по блок-схеме, предоставленной в методичке.
ub Met_RK()
a = Cells(1, 2)
b = Cells(2, 2)
n = Cells(3, 2)
h = (b - a) / n
Cells(4, 2) = h
ya = Cells(1, 5)
y1a = Cells(2, 5)
x = a: y = ya: z = y1a
Cells(7, 1) = x: Cells(7, 2) = y: Cells(7, 3) = z
Cells(7, 4) = Fun_D(x, y, z)
For i = 1 To n
k1 = h * z
m1 = h * Fun_D(x, y, z)
k2 = h * (z + m1 / 2)
m2 = h * Fun_D(x + h / 2, y + k1 / 2, z + m1 / 2)
k3 = h * (z + m2 / 2)
m3 = h * Fun_D(x + h / 2, y + k2 / 2, z + m2 / 2)
k4 = h * (z + m3)
m4 = h * Fun_D(x + h, y + k3, z + m3)
dy = 1 / 6 * (k1 + 2 * k2 + 2 * k3 + k4)
dz = 1 / 6 * (m1 + 2 * m2 + 2 * m3 + m4)
x = x + h
y = y + dy
z = z + dz
Cells(7 + i, 1) = x
Cells(7 + i, 2) = y
Cells(7 + i, 3) = z
Cells(7 + i, 4) = Fun_D(x, y, z)
Next i
End Sub
2) Для работы этой процедуры необходимо задать вспомогательную функцию:
Function Fun_D(x, y, z)
Fun_D = (3 * x - 3 + 3 * z ) / (-1)
End Function
3) На листе Excel вводим данные для работы процедуры:
В1 - начальная точка
В2 – последняя точка
В3 – число разбиений
Е1 – начальное значение функции Y(1)
У2 – начальное значение производной Y’(1)
4). Запускаем процедуру и получаем таблицу значений искомых функций:
5) Построим графики полученных функций.