Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поясн Вар 4-6 Лазарев.doc
Скачиваний:
3
Добавлен:
27.04.2019
Размер:
1.1 Mб
Скачать

III. Решение с помощью встроенной функции линейн():

  • введем экспериментальные данные в диапазон A4:B14;

  • поскольку зависимость ф3(x) есть линейная комбинация функций {1, x^2, cos(x+1) } и параметров { a0, a1, a2 }, то проведем расчет необходимых данных

ячейка D4: =A4^2D5: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

      1. Найти решение y(x), x =[a; b], задачи Коши, используя

  1. Аналитический способ (рекомендуется использовать MathCad )

  2. Метод Рунге-Кутты IV порядка точности:

  1. вычислить «вручную» значения y(a+h), y'(a+h), где при разбиении N

  2. составить макрос (процедуру) в VBA и выполнить его в Еxcel с выводом результатов на рабочий лист при разбиении N.

  1. Встроенные возможности системы 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) Построим графики полученных функций.