Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 9. Символьные вычисления

решения уравнений и систем рассмотрим на конкретных примерах. Для начала стоит обратить внимание на рис. 9.11.

Рис. 9.11. Решение квадратного уравнения

Здесь для решения квадратного уравнения ax2 +bx +c = 0 в символьном виде мы воспользовались командой solve('a*x^2+b*x+c=0') (и затем командой pretty(ans) для изменения формы представления результата). Таким образом, единственным аргументом функции solve() указано решаемое уравнение. Поскольку в соответствующем выражении имеется переменная x, относительно этой переменной и решается уравнение. Если нужно явно указать переменную, относительно которой решается уравнение, она указывается вторым аргументом функции solve().

Примерно так же просто решаются системы уравнений: решаемые уравнения системы передаются аргументами функции solve(). Можно также явно указать переменные, относительно которых решается система. Пример представлен в документе на рис. 9.12.

Здесь мы решаем систему уравнений x2 + y2 = 25 и y x = 1. У системы два решения: x = 3 , y = 4 и x = −4 , y = −3 . Нам понадобятся две команды. Команда объявления символьных переменных syms x y и команда

[x y]=solve('x^2+y^2=25','y-x=1',x,y), которой непосредственно решается система уравнений. Несложно убедиться, что решения найдены правильно.

361

Самоучитель Matlab

Рис. 9.12. Решение системы уравнений

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

На заметку

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

Чтобы решить дифференциальное уравнение, его нужно передать аргументом функции dsolve(). Возникает вопрос, как записать дифференциальное уравнение? Существует несколько правил.

1.Для обозначения операции дифференцирования используется символ D.

2.Операция вычисления n-й производной указывается в формате Dn (то есть символ D и порядок производной).

3.По умолчанию независимой переменной полагается переменная t. Если используется другое имя для независимой переменной, она указывается последним аргументом функции dsolve().

На заметку

Дифференциальное уравнение может решаться само по себе, а может решаться вместе с начальными условиями. В последнем случае речь идет о задаче Коши. Если кроме дифференциального уравнения необходимо учесть начальные условия, то они передаются аргументами функции dsolve(). Если решается одно только уравнение, то результат будет содержать константы интегрирование – независимые произвольные константы. Количество постоянных интегрирования совпадает с порядком дифференциального уравнения или старшей производной в уравнении. Постоянные интегрирования по умолчанию обозначаются в выводимом результате как C1, C2 и так далее.

362

Глава 9. Символьные вычисления

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

Рис. 9.13. Решение дифференциальных уравнений

Командой dsolve('Dz+3*z=2*cos(x)','x') решается дифференци-

альное уравнение dz(x) + 3z(x) = 2 cos(x). В результате получаем общее dx

решение для функции z(x) =

3

cos(x) +

1

sin(x) +

C

 

, где через C

 

 

exp(3x)

5

5

 

 

обозначена постоянная интегрирования (в документе на рис. 9.13 эта константа обозначена как C18 – индекс является следствием особенностей алгоритма, использованного для вычисления результата).

Командой dsolve('D2y+25*y=0','y(0)=2','Dy(0)=-1') решается

задача Коши: дифференциальное уравнение d2y(t) + 25y(t) = 0 с началь- dt2

ными условиями y(0) = 2 и dy(t = 0) = −1. Решение этой задачи имеет dt

вид y(t) = 2 cos(5t) − 1 sin(5t). Именно такое решение и найдено.

5

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

В результате выполнения команды [x y]=dsolve('Dx=x+2*y', 'Dy=3*x-4*y','x(0)=1','y(0)=2') получаем решение системы диф-

ференциальных уравнений

dx(t)

= x(t) + 2y(t)

и

dy(t)

= 3x(t) − 4y(t)

 

 

 

dt

 

dt

363

Самоучитель Matlab

 

 

Рис. 9.14. Решение системы дифференциальных уравнений

с начальными условиями x(0) = 1 и y(0) = 2

. Получено корректное реше-

ние x(t) =

10

exp(2t) −

3

exp(−5t) и y(t) =

5

exp(2t) +

9

exp(−5t) .

 

 

 

 

 

7

7

7

7

 

Собственно говоря, это далеко не полный перечень тех символьных операций, которые могут выполняться в командном окне. Однако следует понимать, что командное окно, в общем-то, и не рассчитано на выполнение символьных расчетов. Несложно догадаться, что в Matlab есть другое "место", которое подходит для этих целей куда больше. Это "место" – редактор встроенной среды - системы компьютерной алгебры MuPAD, реализованный в пакете инструментов Symbolic Math Toolbox. Разумно познакомиться с этой утилитой поближе.

Среда MuPAD

Ну кто так строит? Кто так строит?

К/ф "Чародеи"

Чтобы увидеть во всей красе встроенный редактор среды MuPAD, достаточно в главном окне приложения Matlab выполнить команду Start Toolboxes Symbolic Math MuPAD, как показано на рис. 9.15.

Можно также в командном окне выполнить команду mupad. В результате откроется окно приветствия, в котором необходимо сделать выбор относительно дальнейших планов работы со средой MuPAD (рис. 9.16).

В данном случае мы планируем создать новый документ, поэтому в окне приветствия щелкаем кнопку New Notebook. После этого откроется непосредственно редактор среды MuPAD с новым пустым документом. Наблюдать эту красоту можно на рис. 9.17.

364

Глава 9. Символьные вычисления

Рис. 9.15. Запуск реактора среды MuPAD

Рис. 9.16. Создание нового документа MuPAD

365

Источник: https://studfile.net/preview/16433384/