Файл: КПрМА Практикум 9.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.03.2025

Просмотров: 103

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Практикум 9. Визуализация решений дифференциальных уравнений

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

Продолжительность работы - 2 часа.

Оборудование – работа выполняется в компьютерном классе с использованием пакета MATLAB.

Порядок выполнения

1.Знакомство со справочным материалом по математике

2.Знакомство со справочным материалом по пакету MATLAB.

3.Изучение примеров.

4.Самостоятельное выполнение упражнений. При выполнении упражнений в случае сообщения системы об ошибке рекомендуется найти и исправить ошибку самостоятельно; однако, если после многократных попыток сделать

это не удается, то можно и нужно проконсультироваться с преподавателем.

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

Справочный материал по математике

1. Решение обыкновенного дифференциального уравнения. Интегральные

кривые.

 

 

 

 

 

 

 

 

 

 

 

Обыкновенным

дифференциальным

уравнением n -го порядка

называется

 

 

dx

 

d 2 x

d n x

 

 

соотношение вида

F t, x,

 

,

 

 

,...,

 

 

 

= 0 .

 

dt

dt

2

dt

n

 

 

 

 

 

 

 

 

 

 

Решением (частным решением) дифференциального уравнения на интервале (a,b)

называется любая

функция

 

x = (t) ,

 

которая будучи подставлена

со своими

производными в дифференциальное уравнение обращает его в тождество на (a,b) . Уравнение (t, x) = 0 , определяющее это решение как неявную функцию, называется интегралом (частным интегралом) дифференциального уравнения. На плоскости с декартовой системой координат уравнение (t, x) = 0 определяет некоторую кривую, которая называется интегральной кривой дифференциального уравнения.

Функция x = (t, c1,..., cn )

называется

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

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

уравнения, если при любом

допустимом

наборе параметров

c1,..., cn оно является

частным решением и кроме того, любое его частное решение может быть представлено

в виде

x = (t, с0

,..., c0 )

при некотором наборе

с0

,..., c0

значений параметров

c ,..., c .

 

1

n

 

1

n

 

1

n

2.

Задача

Коши. Задачей Коши

для

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

уравнения

F

t, x,

dx

,

d 2 x

,...,

d n x

= 0 называется задача отыскания решения

x(t) этого

 

 

 

 

 

 

dt

dt

2

dt

n

 

 

 

 

 

 

 

 

дифференциального уравнения, удовлетворяющего начальным условиям:

x(t0 ) = x0 , x (t0 ) = x0 ,…, x( n1) (t0 ) = x0( n1)

1


где

x

0

,

x ,…, x( n 1) - набор чисел.

 

 

 

 

 

 

 

0

0

 

 

 

 

 

3. Устойчивость решений дифференциального уравнения первого порядка

 

dx

 

= f (x,t) .

Решение x = (t) уравнения

dx

= f (x,t) называется устойчивым по

 

dt

dt

 

 

 

 

 

 

 

Ляпунову, если для любого 0 существует такое 0 , что для всякого решения x(t)

того же уравнения,

начальное

значение

которого удовлетворяет

неравенству

 

x(t0 ) (t0 )

 

при

всех t t0

выполняется

неравенство

 

x(t) (t)

 

. Решение

 

 

 

 

x = (t) называется асимптотически устойчивым, если оно устойчиво по Ляпунову и, кроме того, все решения с достаточно близкими начальными условиями неограниченно приближаются к (t) при t → + .

4. Положение равновесия автономного уравнения. Пусть x - некоторая характеристика системы. Тогда уравнение dxdt = f (x,t) описывает происходящий в

системе эволюционный процесс – процесс изменения состояния системы во времени. Рассмотрим частный случай – уравнение, правая часть которого не зависит от t :

 

dx

= f (x) .

Такое дифференциальное уравнение называют автономным.

Значения a

 

dt

 

 

 

 

такие, что

f (a) = 0, называют положениями равновесия. Если a -

положение

равновесия, то x = a – решение уравнения (процесс, начавшись в состоянии a , всегда в нем остается).

5. Траектории в фазовой плоскости. Будем величину x понимать как координату

какой-либо точки на прямой, а

dx

= v - как ее скорость. Плоскость переменных x, v

dt

 

 

называется фазовой плоскостью.

Графическое изображение скорости v как функции

координаты x

( v = v(x) ) называют фазовой картиной (фазовым «портретом»). Кривые

в плоскости x, v , изображающие эту зависимость, называются фазовыми траекториями.

Мгновенные значения x и v

являются координатами точки фазовой траектории. Точка

эта называется изображающей точкой. С течением времени изображающая точка

перемещается

по фазовой

траектории. Положительная скорость соответствует

возрастанию перемещения со временем. Действительно, если v 0 , то

dx

= v 0 и,

dt

 

 

значит, x(t) растет. Таким образом, в верхней половине фазовой плоскости,

где v 0 ,

изображающая точка должна двигаться слева направо, а в нижней половине плоскости, где v 0 , справа налево.

Справочный материал по пакету MATLAB

1. Символьное решение некоторых классов дифференциальных уравнений

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

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

2


dsolve(‘eq’)

dsolve(‘eq’) или dsolve(‘eq’, ‘var’)

Здесь eq – это уравнение, которое должно быть решено. Его вводят как строку ‘eq’ (даже если переменные, входящие в его запись, уже введены как символьные объекты).

В формате вызова dsolve(‘eq’, ‘var’) var – независимая переменная. Как строку (в кавычках) ее нужно записывать в том случае, если переменная не была ранее введена как символьный объект. Если же это было сделано, то кавычки не нужны. В случае применения формата вызова Matlab по умолчанию предполагает, что независимая переменная есть t.

 

 

Для зависимой переменной можно использовать любое имя, кроме D (этот символ

используют для обозначения производной).

 

 

 

 

 

 

 

 

Формат записи уравнения eq следующий: если

x – зависимая переменная, а t

 

 

 

dx

d 2 x

 

d 3 x

 

 

 

 

 

 

независимая, то

 

обозначают Dx,

 

- D2x,

 

 

- D3x

и т.д. Например, уравнение

dt

dt2

dt3

 

 

dx

 

 

 

 

 

 

 

 

d 2 x

 

dx

 

 

= x + 3t вводится как 'Dx=x+3*t',

а уравнение

 

 

3

 

+ 4x = 0 - как 'D2x-

 

dt

 

dt2

dt

3*Dx+4*x=0'.

Важное о функции dsolve:

(1)если Matlab не может найти решение, то программа возвращает пустой символьный объект и выдает соответствующее сообщение.

(2)функция dsolve находит решения над полем комплексных чисел, в то время как

вбольшинстве случаев интерес представляют только действительные решения. Поэтому результат работы команды требует критического осмысления.

>> dsolve('Dx=x^2+1') ans =

i -i

tan(C27 + t)

В этом примере первые два частных решения – «лишние».

Замечание. Для работы функции dsolve не имеет значения были переменные, входящие в уравнение, предварительно введены как символьные объекты, или нет. Но следует учитывать, что если это не было сделано, то в полученных решениях переменные не будут символьными объектами. Поэтому, если далее мы захотим вычислить значение x при конкретном значении t, то вначале переменную t надо объявить символьным объектом и только после этого подставлять вместо нее конкретное число. Тоже касается и констант интегрирования.

>>clear

>>syms t

>>x=dsolve('Dx=t')

x =

t^2/2 + C30

>>subs(x,t,2)

ans = C30 + 2

>>syms C30

>>subs(x,{t,C30},{1,2}) ans =

2.5000

3


1.2. Поиск частного решения (решение задачи Коши). Для нахождения частного решения дифференциального уравнения команда dsolve имеет формат:

уравнение первого порядка: dsolve(‘eq’, ‘cond1’, ‘var’)

уравнение n-го порядка: dsolve(‘eq’, ‘cond1’, ‘cond2’, …, ‘condn’, ‘var’)

Здесь cond1, cond2, … – начальные условия.

Начальные условия вводятся в виде строки: например, условие x(1) = 2 запишется

как ‘x(1)=2’, x (1) = 2 - ‘Dx(1)=2’, x (1) = 2 - ‘D2x(1)=2’ и т.п.

Аргумент ‘var’ является дополнительным. Если он не введен, то по умолчанию независимой переменной считается t.

2. Графическое изображение символьных выражений

2.1. Построить график функции в случае ее символьного задания можно с помощью команды ezplot.

Рассмотрим три формата вызова функции ezplot:

ezplot (fun)

ezplot (fun,[tmin, tmax])

ezplot (fun,[tmin, tmax, xmin, xmax])

Здесь fun - символьное выражение, график которого будет изображен. Это может быть имя ранее созданного символьного выражения или строка, непосредственно напечатанная в команде ezplot. Выражение fun может содержать одну или две символьные переменные. В первом случае команда создает график fun(var). Во втором случае предполагается, что выражение является неявно заданной функцией fun(var1, var2)=0 и Matlab создает график одной переменной как функции другой (в качестве независимой берется та переменная, которая первая в алфавитном порядке).

Вформате ezplot (fun) область определения независимой переменной – промежуток от 2 до 2 ; область значений Matlab подбирает сам.

Вформате ezplot (fun,[tmin, tmax]) аргументы tmin, tmax – диапазон

значений независимой переменной; область значений Matlab подбирает сам.

Вформате ezplot (fun,[tmin, tmax, xmin, xmax]) аргументы tmin, tmax

диапазон значений независимой переменной, аргументы xmin, xmax – область значений зависимой переменной.

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

Функция ezplot в этом случае вызывается в одном из форматов:

ezplot (fun1,fun2) или ezplot (fun1,fun2,[min, max])

Команда создает график fun1(var) как функции fun2(var). Значения символьного выражения fun1 отмечаются на горизонтальной оси, fun2 - на вертикальной.

В формате ezplot (fun1,fun2) область изменения независимой переменной – промежуток от 0 до 2 (по умолчанию). В формате ezplot (fun1,fun2,[min, max]) область изменения от min до max.

3. Функция sprintf

Пусть нужно в рамках программы использовать команду dsolve неоднократно для разных рассчитываемых внутри программы начальных условиях или коэффициентах уравнения. Как добиться обновления строк ‘eq’, ‘cond’? Это удобно делать с

4


помощью команды sprintf, которая преобразует данные в строки символов в соответствии с указанным форматом и возвращает их в виде строковой переменной. Рассмотрим пример изменения внутри программы строки начальных условий:

>> t0=0;

>> for m=1:2 x0=0.2*m

nu=sprintf('x(%d)=%d',t0,x0)

dsolve('Dx=x',nu) end

x0 =

0.2000

nu = x(0)=2.000000e-001 ans =

exp(t)/5 x0 =

0.4000

nu = x(0)=4.000000e-001 ans =

(2*exp(t))/5

 

Примеры применений MATLAB

 

Пример 1.

Выше было рассмотрено уравнение x = kx ,

k 0 . Оно служит

математической моделью многих процессов. В частности, если

k 0 оно описывает

число особей x

биологической популяции (например, количество бактерий в чашке

Петри) при условии, что пищи достаточно много. Уравнение

x = kx (его называют

уравнением нормального размножения) фиксирует наблюдаемую на практике закономерность: скорость прироста пропорциональна количеству особей.

Однако уравнение нормального размножения пригодно, лишь пока число особей не слишком велико. С увеличением числа особей конкуренция из-за пищи приводит к уменьшению скорости прироста. Для описания процесса в этом случае неплохо служит предположение, что коэффициент k линейно уменьшается с ростом x : x = (a bx)x . Уравнение x = (a bx)x путем масштабирования осей t и x можно преобразовать к уравнению x = (1x)x , которое называют логистическим. Исследуем свойства его решений, опираясь на их графическое представление.

Решение.

Уравнение x = (1x)x - уравнение с разделяющимися переменными. Его решение несложно найти аналитически. Сделаем это не «руками», а путем символьных расчетов в Matlab.

Набираем в командном окне:

format rational xt=dsolve('Dx=(1-x)*x')

На экран выводится:

xt =

0

1 -1/(exp(C3 - t) - 1)

Таким образом, имеются два частных решения x = 0 , x = 1 и общее решение

x = − 1 . Изучим на качественном уровне характер решений этого уравнения. Для

ec t 1

5