Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пакеты прикладных программ.-2

.pdf
Скачиваний:
12
Добавлен:
05.02.2023
Размер:
967.53 Кб
Скачать

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.113×t

 

 

 

 

 

 

 

 

 

 

 

 

.113×t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.899×e

dt float,

3 ® 7.96×e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прибавляем постоянные интегрирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(-1.)×e

t

 

 

C11

 

 

 

 

(-1.)×e

t

+ C11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.89×t

+ C12

 

®

 

 

 

 

 

8.89×t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.114e-1×e

 

 

 

 

C13

 

 

.114e-1×e

 

 

 

 

+ C12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.96×e

.113×t

 

 

 

 

 

 

.113×t

+ C13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.96×e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формируем общее решение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1(t)

 

 

(-1.)×e

+ C11

 

simplify

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.89×t

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

(- 7.89)×t

 

.887×t

 

(- 1.)×t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y2(t)

 

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ .500e4C11× + .500e4e×

 

 

×C12+ .500e4e×

 

 

×e

 

 

 

 

 

.114e-1e×

 

+ C12

 

 

 

 

 

® .200e-3×

.349e5e×

 

 

 

 

×C13

 

 

 

 

 

 

float,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y3(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.96e× .113×t + C13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для определения констант дифференцируем два раза с упрощением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

t

 

 

 

(- 7.89)×t

 

 

 

 

.887×t

 

 

(- 1.)×t

simplify

(- 8.89)×t

 

 

(- .113)×t

 

 

(- 1.)×t

 

 

 

 

 

 

 

 

+ .500e4C11× + .500e4e×

 

 

 

×C12+

.500e4e×

 

 

 

×e

 

 

 

 

 

 

 

® (-8.89)×e

×C12- .113e×

×C13- 1.×e

 

×C1

 

.200e-3× .349e5e×

 

 

 

 

×C13

 

 

 

 

 

 

 

 

dt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

float,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приравнивая нулю время t, составляем уравнения для определения констант

 

 

 

 

 

 

d2

 

 

 

t

 

 

 

(- 7.89)×t

 

 

 

.887×t

 

 

(- 1.)×t

 

 

simplify

(- 8.89)×t

 

(- .113)×t

 

(- 1.)×t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.200e-3× .349e5e×

+ .500e4C11× + .500e4e×

 

 

 

 

×C12+ .500e4e×

 

 

×C13×e

 

 

 

 

 

 

® 79.0e×

 

×C12+ .128e-1×e

 

×C13+ e

 

 

×C1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

float,3

 

 

 

 

 

 

 

 

 

 

dt

 

 

 

 

 

given

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C11 + C12 + C13 8.1 -8.89C12 - 0.113×C13 - C11 0

-79×C12 + 0.128×C13 + C11 0

-1.05

find(C11, C12, C13) float, 3 ® .156e-29.15

Общее решение принимает вид:

y(t) := 200e-3×

 

t

+ .500e4×(-1.05) + .500e4×e

(- 7.89)×t

×0.00156+ .500e4×e

.887×t

 

×e

(- 1.)×t

 

 

 

 

 

 

.349e5×e

 

 

 

×9.15

 

Упрощаем выражение:

y(t)

simplify

 

 

 

t

- .263e5 + 39.×e

(- 7.89)×t

+ .229e6×e

.887×t

×e

(- 1.)×t

float, 3

® .400e-1× .175e6×e

 

 

 

 

 

 

Окончательное выражение для общего решения:

 

 

 

y(t) := .400e-1×

 

t

- .263e5

+

39.×e

( - 7.89)×t

+

.229e6×e

.887×t

×e

(- 1.)×t

 

 

.175e6×e

 

 

 

 

 

 

 

 

71

Строим график:

2

.104

 

 

1.5

.104

 

 

y( t)

 

 

 

1

.104

 

 

t := 0.. 100

 

 

 

 

5000

50

100

 

0

 

 

t

 

 

 

Рис.6.9.

 

6.10. Решение краевых задач для обыкновенных дифференциальных уравнений

Краевая задача решается в MathCAD методом пристрелки с помощью встроенной функции sbval. Эта функция на основании заданных конечных условий вычисляет начальные условия. После этого задача сводится к задаче Коши и ее можно решить, используя известную функцию rkfixed.

Функция sbval имеет вид:

sbval(v,x1,x2,f,load,score).

Здесь: v-вектор незаданных начальных условий, т.е. тех начальных условий, вместо которых заданы конечные условия. Обычно выбираем все компоненты v, равными 1;

x1, x2- начальное и конечное значения аргумента, т.е. интервал решения дифференциального уравнения;

f(x,y)- векторная функция, содержащая правые части дифференциального уравнения , та же, что используется при решении дифференциального уравнения с помощью rkfixed;

load(x1,v) -вектор всех начальных условий. Сюда помещаются все заданные начальные условия, а вместо незаданных помещаются компоненты вектора v;

score( x2, y)- вектор конечных условий, в который помещаются разности между текущими значениями тех переменных, для которых заданы конечные условия, и их численными значениями.

В качестве иллюстративного примера рассмотрим однородное дифференциальное уравнение пятого порядка

d 5 y + y = 0 dx5

Задан интервал решения: 0, 1.

Для уравнения пятого порядка должны быть заданы пять граничных условий.

Заданы начальные условия y(0)=0 , dy/dx x=0

=7

и конечные условия y(1) = 1 , dy/dx x=1 = 10

, d2y/dx2x=1 = 5 .

Сформируем для трех не заданных начальных условий вектор v ,присвоив всем его

элементам единичные значения

1 v = 11

72

Сформируем вектор f(x,y). Для этого введем подстановки:

4

d y4 = y0 dx

3

d y3 = y1 dx

2

d y2 = y2 dx

dy = y3 dx

y = y4

Вместо одного уравнения пятого порядка мы имеем теперь систему из пяти уравнений первого порядка:

dy0 + y4 = 0 dx

dy1 = y0 dx

dy2 = y1 dx

dy3 = y2 dx

dy4 = y3 dx

Разрешив первое уравнение этой системы относительно производной, получим :

 

 

 

 

dy0

 

= − y

4

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy1

 

 

 

= y

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy2

 

= y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

1

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dy4

= y3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn := 0 xk := 1

 

1

 

 

 

 

 

 

 

v

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

− 5

v :=

 

 

 

 

 

 

 

 

 

v1

 

y

2

 

1

 

 

 

 

 

 

 

score (xk, y) := y

 

 

 

 

1

load(xn, v) :=

 

 

 

 

 

 

− 10

 

 

 

 

 

 

 

 

 

 

 

v2

 

 

 

3

− 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

Следовательно,

73

y4

 

 

 

 

y0

 

f (t, y) = y

 

 

1

 

y2

 

 

 

 

y3

 

Сформируем вектор

0

 

 

 

 

 

 

7

 

load (xn, v) = v0

 

v1

 

 

 

 

 

v2

 

Здесь xn - начальное значение x, а вектор заполняется следующим образом: была проведена подстановка

4

d y4 = y0 dx

3

d y3 = y1 dx

2

d y2 = y2 dx

dy = y3 dx

y = y4

После которой вектор переменных приобрел следующий вид:

y0y1y2y3y4

С учетом подстановки нам заданы y0 = 0

и y1=7. Остальные начальные условия

неизвестны и мы заполняем их вектором v.

 

 

Сформируем вектор score(xk,y) для заданных конечных условий:

y0

−1

score(xk, y) = y

−10

 

1

 

 

 

 

y2

− 5

Вектор включает те переменные, для которых заданы конечные значения.

Все вышеперечисленные действия были произведены в MathCAD, и было получено искомое решение, приведенное на Рис.6.10.

 

 

 

 

 

 

 

 

v

0

 

 

 

 

y2

− 5

 

 

 

 

 

 

 

 

score (xk, y) := y

 

 

 

 

v

1

 

 

xn := 0

xk := 1

3

− 10

load (xn, v) :=

 

 

 

 

 

 

 

 

v2

 

 

 

 

y4

− 1

 

 

 

 

 

 

 

 

 

 

 

 

7

74

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

−y

4

 

v := 1

 

 

y

 

 

 

 

 

0

 

1

 

 

 

 

 

 

f(x, y) :=

y1

 

 

 

 

y2

 

 

 

 

 

 

 

 

y3

 

 

 

 

 

 

−516.257

 

 

348.107

 

 

 

 

 

y := rkfixed

−85.014

, xn, xk, 1000, f

 

7

 

 

 

 

 

 

 

0

 

 

S := sbval (v , 0, 1, f, load , score )

j := 0.. 100

y j , 5

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0.5

1

y j , 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y j , 3

 

 

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.6.10. Решение краевой задачи в MathCAD.

Функция sbval вычисляет неизвестные начальные условия, а мы затем вводим их в функцию rkfixed и получаем решение.

На графиках приведены те кривые, для которых заданы конечные условия, чтобы можно было убедиться в их выполнении, а именно y3(x), y4 (x), y5(x).

Ниже приведены вычисленные начальные и конечные значения переменных. Весь диапазон решения разбит нами на 1000 точек (j=0..1000), поэтому y0,0 - это начальное, а y1000,0 - конечное значения y0. То же относится к другим переменным.

y0 , 5 = 0 y1000, 5 = 1 y0 , 4 = 7 y1000, 4 = 10 y1000, 3 = 5

Как видим, вычисленные значения совпадают с заданными.

6.11.Решение линейных уравнений с переменными коэффициентами

Вкачестве иллюстративного примера рассмотрим линейное дифференциальное уравнение с переменными коэффициентами следующего вида:

 

y′′+ xy′+ x2 y = x

 

В таких уравнениях

коэффициенты при

переменной являются функцией

независимой переменной - аргумента, в нашем случае х.

Задан интервал вычислений 0<= x <=5, заданы конечные условия y(5) =2, y ′(5) = 3.

Нестационарные дифференциальные уравнения

относятся к классу линейных, однако

их аналитическое решение обычно затруднено, и их проще решать численно.

Перейдя к системе дифференциальных уравнений первого порядка, имеем (проделать

самостоятельно):

y

0

= − xy

0

x

2 y + x

 

 

 

 

 

1

 

y

= y

0

 

 

 

 

1

 

 

 

 

Далее составляем все необходимые функции, как показано на Рис.6.11 и проводим решение.

75

 

 

 

1

load(xn, v) := v

 

y

0

- 3

xn := 0

xk:= 5

v :=

 

score (xk, y) :=

 

 

 

 

1

 

 

 

- 2

 

 

 

 

 

 

 

y1

 

 

 

-x×y0

2

×y1

 

 

f(x, y) :=

 

- x

+ x

 

 

 

y0

 

 

s := sbval (v , xn, xk, f , load , score )

 

 

 

 

 

s =

y := rkfixed(s , xn, xk, 1000, f)

 

 

 

j := 0.. 1000

 

 

4000

 

 

 

2000

 

 

 

y j , 2

 

 

 

0

2

4

6

2000

 

 

 

 

 

y j , 0

 

Рис.6.11. Решение краевой задачи для нестационарного дифференциального уравнения

Это уравнение является сложным для компьютера, что видно из длительности его решения.

Проверим вычисление крайних точек:

y0, 2 = 2.073´ 103 y1000, 2 = 2

y0, 1 = -2.673´ 103

y1000, 1 = 3

Как видим, конечные значения совпали с заданными.

6.12. Порядок выполнения работы

Задача 1. Используя функцию odesolve, решить самостоятельно приведенные ниже дифференциальные уравнения. Построить графики решения:

y``+5 y`+10 y = 5x

y```+50 y``+ y`y + 9 y = 0

y`(0) = 0

y``(0) = 2

y(0) = 0

y`(0) = 0

 

y(0) = 8

Задача 2. Решить в MathCAD дифференциальное уравнение второго порядка

T2 d2 y/dt2 + ξ T dy/dt +y =0

при начальных условиях t 0 = 0, y(t0) =1, dy/dt (t0) =0 и заданных значениях параметров Т=10, ξ =0.5.

Задача 3. Решить в MathCAD самостоятельно следующие дифференциальные уравнения:

76

3d2y/dx2 +5 dy/dx +6 y =0 x0 =0, y(x0) =2, dy/dx (x0)=0. хлон= 20, n=500.

5d3y/dt3 + 9 d2y/dt2 – 2dy/dt + 8y = 1/(t+1). y(0)=0, y`(0)=1, y``(0)=0 .

Задача 4. Решить самостоятельно приведенные ниже системы уравнений первого порядка

y`( x) + y(x)z(x) + 8x = 0 z`( x) + 8z(x) −10 = 0

y(0) = 1 z(0) = 5

u`(t)w(t) + u(t) − 3t = 0 w`(t) − w(t) + t 2 = 0

u(0) = 0 w(0) = 0

Задача 5. Решить линейное дифференциальное уравнение :

T 2 d 2 y + 2ξT dy + y = 0 dt 2 dt

y(0) = 0 y`(0) = 1

для Т=10 и ξ = -2, -0.5, 0, 0.5, 5.

Убедиться, что:

При ξ = -2 решение – расходящийся апериодический процесс; при ξ = -0.5 – решение – расходящийся периодический процесс; при ξ =0 – решение незатухающие гармонические колебания; при ξ= +0.5 – решение затухающие колебания; при ξ = +5 – решение апериодический сходящийся процесс.

Задача 6. Решить линейное дифференциальное уравнение :

T 2 d 2 y + 2ξT dy + y = 0 dt 2 dt

y(0) = 0 y`(0) = 1

для ξ = 2 и Т = 0.5, 5, 10.

Убедиться, что увеличение коэффициента линейного запаздывания Т приводит к уменьшению наклона решения - экспоненты .

Задача 7. Используя функцию odesolve, решить самостоятельно приведенные ниже дифференциальные уравнения. Построить графики решения:

y``+5 y`+10 y = 5x

y```+50 y``+ y`y + 9 y = 0

y`(0) = 0

y``(0) = 2

y(0) = 0

y`(0) = 0

 

y(0) = 8

Задача 8. Решить в MathCAD дифференциальное уравнение второго порядка

T2 d2 y/dt2 + ξ T dy/dt +y =0

77

3d2y/dx2 +5 dy/dx +6 y =0

при начальных условиях t 0 = 0, y(t0) =1, dy/dt (t0) =0 и заданных значениях параметров Т=10, ξ =0.5.

Задача 9. Решить в MathCAD самостоятельно следующие дифференциальные уравнения: x0 =0, y(x0) =2, dy/dx (x0)=0. хлон= 20, n=500.

5d3y/dt3 + 9 d2y/dt2 – 2dy/dt + 8y = 1/(t+1). y(0)=0, y`(0)=1, y``(0)=0 .

Задача 10. Решить самостоятельно приведенные ниже системы уравнений первого порядка

y`( x) + y(x)z(x) +8x = 0 z`( x) +8z(x) −10 = 0

y(0) =1 z(0) = 5

u`(t)w(t) + u(t) −3t = 0 w`(t) − w(t) + t 2 = 0

u(0) = 0 w(0) = 0

Задача 11. Так как алгебраические уравнения с буквенными коэффициентами выше третьей степени символьно не решаются в MathCAD, то и линейные дифференциальные уравнения с буквенными коэффициентами выше третьего порядка решены быть не могут.

УТОЧНИТЬ.

6.13. Контрольные вопросы

1.Проверить для дифференциального уравнения условия теоремы существования и единственности.

2.На какие основные группы подразделяются приближенные методы решения дифференциальных уравнений?

3.В какой форме можно получить решение дифференциального уравнения по методу Эйлера?

4.Каков геометрический смысл решения дифференциального уравнения методом Эйлера?

5.В какой форме можно получить решение дифференциального уравнения по методу РунгеКутта?

6.Какой способ оценки точности используется при приближенном интегрировании дифференциальных уравнений методами Эйлера и Рунге-Кутта?

7.Как вычислить погрешность по заданной формуле, используя метод двойного пересчета?

78