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

Лабораторный практикум по математическому моделированию химико-технологических процессов. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
774 Кб
Скачать

приближения строится последовательность, сходящаяся к искомому решению.

Напечатайте в рабочем окне Mathcad ключевое слово Given. Оно указывает Mathcad, что далее следует система уравнений. При вводе слова Given можно использовать любой шрифт, прописные и строчные буквы. Убедитесь, что при этом Вы не находитесь в текстовой области.

Введите уравнения и неравенства в любом порядке ниже ключевого слова Given. В качестве знаков равенства следует использовать логическое равенство ═. Ввести его можно нажатием кнопки «Булево равенство» панели «Булева алгебра» либо с помощью сочетания клавиш «Ctrl»+ «=». Между левыми и правыми частями неравенств может стоять любой из логических

символов <, >,£ и ³ (панель «Булева алгебра»).

Введите функцию решения систем уравнений Find( X1, X 2 ...) и

оператор численного вывода (знак «=»). При вводе слова Find можно использовать шрифт любого размера, произвольный стиль, прописные и строчные буквы. В скобках через запятую задайте переменные в том порядке, в котором должны быть расположены в ответе соответствующие им корни. Если результаты решения требуется использовать в дальнейших расчетах, то тогда их

необходимо

присвоить

некоторой

переменной

Z := Find ( X1, X 2 ...) .

 

 

 

 

 

Задание 6

 

 

 

 

 

 

1.1. Решите

 

 

+

 

= 9 ,

систему нелинейных уравнений

X

Y

3 X + 3 Y = 5 и выведите результат на печать:

31

1.2. Результаты решения системы уравнений присвоить переменной Z. Распечатайте по отдельности каждый элемент вектора решений.

Вопросы для самоконтроля

1.Что такое регрессионный анализ?

2.Что такое коэффициент корреляции?

3.Какие виды функций регрессии существуют, в чем их различие?

4.Какие функции решения уравнения с одним неизвестным и системы уравнений используются в MathCad?

5.Что является результатом решения системы нелинейных уравнений?

6.Какие символы должны использоваться в качестве знаков равенства или неравенства при записи уравнений в вычислительном блоке Given-Find?

Лабораторная работа 3

РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Цель работы: ознакомиться с возможностями математического пакета Mathcad при решении дифференциальных уравнений в различных вариантах постановки задачи (задача Коши, краевая задача).

Теория

Дифференциальные уравнения позволяют выразить соотношения между изменениями физических величин, и потому они имеют большое значение в прикладных задачах. Обыкновенным дифференциальным уравнением порядка r называется уравнение

F [x, y( x), y( x),..., y(r )( x)] = 0 ,

(1)

которое связывает независимую переменную x, искомую функцию y = y( x) и ее производные y( x),..., y(r ) ( x). Решение

(интегрирование) дифференциального уравнения (1) заключается в отыскании функций (интегралов) y( x), которые удовлетворяют этому

уравнению для всех значений x в определенном конечном (a,b) или

бесконечном интервале. Решения могут быть проверены подстановкой в уравнение (1).

Общее решение обыкновенного дифференциального уравнения порядка r имеет вид

 

y = y(x;C ,C

,...,C

r

),

(2)

 

1 2

 

 

 

где С1, С2,…,

Сr произвольные

 

постоянные

(постоянные

интегрирования). Каждый частный выбор этих постоянных дает частное решение. В задаче Коши (начальной задаче) требуется найти частное решение, удовлетворяющее r начальным условиям:

 

 

 

y(x

0

) = y

,

 

 

 

 

) = y

 

 

0

 

) = y( r −1) ,

 

y(x

0

,..., y( r −1) (x

0

(3)

 

0

 

 

 

 

0

 

33

по которым определяются r постоянных С1, С2,…, Сr. В краевой задаче на y( x) и ее производные накладываются r краевых условий в точках

x = a и x = b .

Методы численного решения обыкновенных дифференциальных уравнений в форме задачи Коши разработаны досконально [5]. Самыми распространенными из них являются алгоритмы Рунге Кутта , успешно используемые для решения подавляющего большинства дифференциальных уравнений.

В Mathcad имеются специальные встроенные функции, позволяющие находить решения как линейных, так и нелинейных систем дифференциальных уравнений. Несмотря на различные методы поиска решения, каждая из этих функций требует, чтобы были заданы, по крайней мере, следующие величины, необходимые для поиска решения:

начальные условия;

набор точек, в которых нужно найти решение;

само дифференциальное уравнение, записанное в некотором специальном виде.

Для качественного и быстрого решения подавляющего большинства систем дифференциальных уравнений используется

функция rkfixed(у0, t0, t1, М, D). Данная функция решает задачу Коши с помощью алгоритма на основе метода Рунге Кутта 4-го порядка с фиксированным шагом.

При использовании функции rkfixed для решения системы дифференциальных уравнении первого порядка:

y( x) = F [x, y

( x)],

i = 1,..., N

(4)

i

i

 

 

 

она должна быть записана в векторном виде:

 

 

 

 

Y (x) = D(y( x), x),

(5)

где Y ( x) вектор первых производных системы; D(y( x), x)

вектор-

функция, каждая строка которой содержит правую часть соответствующего уравнения системы (4).

Параметры функции rkfixed определяются следующим образом:

34

y0 вектор значений искомых функций на левой границе

интервала изменения переменной. Размерность вектора определяется порядком дифференциального уравнения или числом уравнений в системе (если решается система уравнений). Для дифференциального уравнения первого порядка вектор начальных значений вырождается в одну точку y0 = y(x0);

t0 и t1 начальная и конечная точки интервала, на котором ищется решение системы дифференциальных уравнений;

М число точек, за исключением начальной точки, в которых будет определяться решение системы дифференциальных уравнений. Длина шага вычисляется делением интервала t1 - t0, на число шагов М. Величина М влияет на точность и трудоемкость численного решения системы дифференциальных уравнений. Большой шаг снижает точность и трудоемкость решения, маленький шаг, наоборот, повышает точность, но одновременно и трудоемкость. Данный факт необходимо учитывать при выборе значения М. Число М определяет число строк в полученной матрице решений, которое равно М+1;

D(x,y) вектор-функция, содержащая правые части уравнений системы (4). Должна быть задана как функция двух переменных: скаляра х (аргумента функции) и вектора у (все искомые функции системы должны быть представлены как элементы одного вектора у).

Результатом работы функции rkfixed является матрица, в первом столбце которой содержатся значения переменной t (от t0 до t1), а в остальных значения неизвестных функций системы, рассчитанные в заданных точках. При этом порядок расположения столбцов искомых функций определяется последовательностью, в которой они были занесены в вектор у.

Если дифференциальные уравнения системы содержат производные от неизвестных функций выше первого порядка, то все уравнения, содержащие такие производные, необходимо преобразовать. Любое уравнение вида (1), содержащее производные выше первого порядка посредством замены

y ( x) =

y( x) ,

y

( x) = y( x),…,

y

( x) = y( r −1) ( x) ,

1

 

2

 

r

 

может быть приведено к совокупности уравнений:

y( x) =

y

( x) ,

y

( x) = y

( x),…,

y( x) = F (x, y

( x), y

r −1

( x),..., y ( x)).

1

2

 

2

3

 

r

r

 

1

35

В приведённых выше уравнениях уже нет производных выше первого порядка. Преобразовав подобным образом каждое из уравнений, входящих в исходную систему, получим новую систему с большим количеством неизвестных функций, но с производными только первого порядка. Следовательно, для решения такой системы дифференциальных уравнений можно использовать функцию rkfixed, как описано выше.

Задание 1

1.1.

Решить

дифференциальное

уравнение dy

+ 3 y = 0

, с

 

 

 

 

dx

 

 

 

 

 

 

 

начальным

условием

y(0) = 4 . Интервал

решения [0,4].

Результат

решения представить графически. Измените шаг решения и проследите его влияние на результат.

Вариант решения задачи:

y := 4

- вектор начальных приближений

N := 40

- количество шагов

D(x , y) := -3 × y

- вектор функция

t0 := 0 t1 := 4

- интервал решения

Z := rkfixed(y , t0 , t1 , N , D)

 

4

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

Z 1

 

 

 

 

 

 

1

 

 

 

 

 

 

0

1

2

3

4

5

 

0

 

 

 

 

 

 

 

 

 

Z

0

 

 

1.2. Решить систему двух нелинейных дифференциальных уравнений первого порядка:

36

m × y(x) - z(x) - (y(x)2 + z(x)2 )× y(x) - dy(x) = 0 dx

m × z(x) + y(x) - (y(x)2 + z(x)2 )× z(x) - dz(x) = 0 dx

С начальными условиями: y(0) = 0 и z(0) = 1. Интервал решения [0,20].

Результат решения представить графически. Вариант решения задачи:

N := 100 - количество шагов

0

 

 

 

 

 

 

 

 

y := 1

 

 

- вектор начальных приближений

 

 

 

t0 := 0

t1 := 20

- интервал решения

 

 

μ := -0.2

 

 

 

 

 

 

 

 

 

 

 

2

+ (y1)

2

 

 

D(x ,y) :=

μ × y0

- y1 - (y0)

2

 

× y0

- вектор-функция

 

+ y0 - (y0)

+ (y1)

2

 

 

 

μ × y1

 

 

× y1

 

Z := rkfixed(y , t0 ,t1 , N , D)

 

0.2

 

 

 

 

0

 

 

 

Z 1

0.2

 

 

 

 

0.4

 

 

 

 

0.6

0

0.5

1

 

0.5

 

 

 

Z 2

 

Решение краевых задач

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

37

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

вкотором многократно решается задача Коши. Суть этого алгоритма заключается в подборе (естественно, направленном) недостающих параметров на одной из границ интервала, исходя из того условия, что соответствующие решения полученной задачи Коши в противоположной точке интервала должны совпадать с исходными краевыми условиями с определенным уровнем точности.

Для решения краевых задач в Mathcad имеется встроенная

функция sbval(z.t0,t1,D,load,score). Данная функция требует определения следующих параметров:

z вектор приближений, в котором необходимо определить исходные значения для недостающих на левой границе условий. Выбор начального приближения оказывает влияние на сходимость и время поиска решения;

t0 и t1 начальная и конечная точки интервала, на котором ищется решение системы дифференциальных уравнений;

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

load(t0,z) векторная функция двух переменных, описывающая значение функции на левой границе интервала. Представляет собой вектор из N элементов (N соответствует количеству уравнений системы), каждый из которых является значением соответствующей

функции вектора y в точке t0. Если начальное значение некоторой функции неизвестно, в качестве элемента load следует использовать величину из вектора приближений z;

score(t1,y) векторная функция, служащая для задания правых граничных значений. Элементы вектора score должны быть заданы как

разности известных начальных значений в точке t1 и соответствующих им значений функций y, возвращаемых функцией sbval. Алгоритм, лежащий в основе функции sbval, использует текущие величины score

вкачестве меры точности подобранных приближений.

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

38

уже определенную выше функцию load (обозначив вектор результата как z).

Задание 2

Решить краевую задачу для системы уравнений:

y( x) = z( x) , z( x) = 0.25(x y( x))

Интервал решения [0,5]. Краевые условия определены следующим образом:

y(0) = 5 , z(5) = −8.867 .

Результат решения представить графически. Вариант решения задачи:

y0 := 10

 

 

 

 

- начальное приближение

t0 := 0

t1 := 5

 

 

- интервал решения

 

 

 

Y1

 

 

 

 

 

 

 

 

 

 

D (X , Y) := X

Y0

- вектор-функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

load(t0 , V) :=

5

 

 

- начальные приближения на левой границе

 

 

 

 

 

V0

 

 

 

 

score(t1 , W) := W1 + 8.867

- проверка на правой границе по искомой функции

IC := sbval(y , t0 , t1 , D , load , score) = ( 11.449)

- поиск недостающего значения на

левой границе

 

 

 

 

 

 

ic := load(0 , IC) =

 

5

- формирование вектора значений функций на

11.449

левой границе

S := rkfixed(ic , t0 , t1 , 100 , D)

- решение задачи Коши

Графическое представление результатов решения

39

 

30

 

 

 

 

 

S 1

20

 

 

 

 

 

 

 

 

 

 

 

S 2

10

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

10

1

2

3

4

5

 

0

 

 

 

 

S 0

 

 

Задание 3

3.1.Решить систему уравнений в соответствии со своим вариантом, представленным в таблице. Интервал решения и краевые условие также представлены в таблице. Результат решения представить графически.

3.2.Для той же системы дифференциальных уравнений решить краевую задачу. На левой границе интервала известно значение только первой функции. Значение второй функции на правой границе интервала взять из задания 3.1. и, используя процедуру sbval, получить недостающее значение на левой границе интервала.

Система уравнений

 

Интервал

Краевые

п/п

 

 

 

условия

1

y= sin( y) + cos(z 2 ); z= y - exp(z 2 )

[0,20]

y0= – 0.3;

 

 

 

z0=0.7

 

 

 

 

2

y= y + cos(z); z= y - exp(z)

[0,4]

y0= – 0.3;

 

 

 

z0=1

 

 

 

 

3

y= 5 × y × cos(z); z= y + y × exp(z)

[0,9]

y0= – 0.5;

 

 

 

z0=2

 

 

 

 

4

y= y + sin(z); z= y - cos(z)

[0,1]

y0=0; z0=1

 

 

 

 

 

 

 

5

y= 2 × z + sin(y); z= z - 2 × cos( y)

[0,2]

y0= – 0.7;

 

 

 

z0=0.7

 

 

 

 

6

y= ln(z) + y ; z= z + 6 × sin( y)

[0,1.5]

y0=1; z0=0.5

 

 

 

 

 

 

 

 

7

y¢ = ln(z) + y ; z¢ =

z + 5 × sin( y)

[0,2]

y0=1; z0=0.5

 

 

 

 

 

 

 

 

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]