![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Аналитический способ с использованием МС.Стр 1 из 2Следующая ⇒
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), где Рассмотрим заданное дифференциальное уравнение второго порядка. -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) Построим графики полученных функций.
2.3. Встроенные возможности системы MathCad
|