Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekol_LR_1.doc
Скачиваний:
11
Добавлен:
01.04.2025
Размер:
257 Кб
Скачать
☆
  1. Выполнение операций математического анализа с использованием пакета символьной математики.

На примерах рассмотрим технику использования пакета символьной математики для: - дифференцирования,

- интегрирования функций одной переменной,

- решения алгебраических уравнений

- интегрирования дифференциальных уравнений.

Для обращения к пакету указывается принадлежность переменных к символьным записью вида x=sym(‘x’); y=sym(‘y’) или syms x y или выделением выражений апострофами.

Определение n-ной производной по x от выражения F(x) выполняется по команде формата diff(‘F(x)’,’x’,n) или diff(F(x),x,n), если ранее указано, что x – символьная переменная, указывается лишь n > 1.

Примеры:

>> diff('exp(x)*cos(x)','x',2)

ans =

-2*exp(x)*sin(x).

>> syms x a

>> diff(sin(a*x)/x,x)

ans =

cos(a*x)*a/x-sin(a*x)/x^2.

Команда на вычисление неопределенного интеграла – int('F(x)’,'x').

Пример:

>> int('exp(x)*cos(x)','x')

ans =

1/2*exp(x)*cos(x)+1/2*exp(x)*sin(x).

Команда на вычисление определенного интеграла содержит, кроме того, пределы интегрирования.

Примеры:

>> int('exp(x)*cos(x)','x',0,2)

ans =

1/2*exp(2)*cos(2)+1/2*exp(2)*sin(2)-1/2.

>> int('exp(x)*cos(x)','x',0,pi*3/2)

ans =

-1/2*exp(3/2*pi)-1/2.

Вычисления можно довести до приближенного ответа:

Пример.

>> -1/2*exp(3/2*pi)-1/2

ans =

-56.1589.

Вычисление кратных интегралов выполняется по схеме «интеграл от интеграла от интеграла…».

Алгебраические выражения, в том числе получаемые при интегрировании, можно упрощать, правда, во многих случаях слабее, чем это делают абитуриенты МАИ, командой формата simple(F(x)).

Например, выполнение команды simple(1/2*exp(x)*cos(x)+1/2*exp(x)*sin(x)) состояло в переборе многих вариантов и привело к скромному результату:

ans =1/2*exp(x)*(cos(x)+sin(x)).

Решение алгебраических уравнений вида F(x) = 0 выполняется по команде формата solve(‘F(x)’).

Примеры.

>> solve('x^2-2')

ans =

[ 2^(1/2)]

[ -2^(1/2)].

Ответ простой, обозримый.

Но вот другой случай:

>> solve('x^3-2*x^2+x-5')

ans =

[1/6*(532+12*1965^(1/2))^(1/3)+2/3/(532+12*1965^(1/2))^(1/3)+2/3]

[ -1/12*(532+12*1965^(1/2))^(1/3)-1/3/(532+12*1965^(1/2))^(1/3)+2/3+1/2*i*3^(1/2)*(1/6*(532+12*1965^(1/2))^(1/3)-2/3/(532+12*1965^(1/2))^(1/3))]

[ -1/12*(532+12*1965^(1/2))^(1/3)-1/3/(532+12*1965^(1/2))^(1/3)+2/3-1/2*i*3^(1/2)*(1/6*(532+12*1965^(1/2))^(1/3)-2/3/(532+12*1965^(1/2))^(1/3))]

Полученные точные значения корней вычисляются приближенно после перемещения их мышкой к курсору:

>> [ 1/6*(532+12*1965^(1/2))^(1/3)+2/3/(532+12*1965^(1/2))^(1/3)+2/3]

ans =

2.4334 ,

>> [

-1/12*(532+12*1965^(1/2))^(1/3)-1/3/(532+12*1965^(1/2))^(1/3)+2/3+1/2*i*3^(1/2)*(1/6*(532+12*1965^(1/2))^(1/3)-2/3/(532+12*1965^(1/2))^(1/3))]

ans =

-0.2167 + 1.4170i ,

>> [

-1/12*(532+12*1965^(1/2))^(1/3)-1/3/(532+12*1965^(1/2))^(1/3)+2/3-1/2*i*3^(1/2)*(1/6*(532+12*1965^(1/2))^(1/3)-2/3/(532+12*1965^(1/2))^(1/3))]

ans =

-0.2167 - 1.4170i .

Аналогично решаются системы алгебраических уравнений.

Например, система уравнений P(x,y,z)=0, Q(x,y,z)=0, R(x,y,z)=0 решается по команде формата:

[x,y,z]=solve(‘P(x,y,z)’, ‘Q(x,y,z)’, ‘R(x,y,z)’,’x’,’y’,’z’).

В качестве упражнения введите команду

>> [x,y,z]=solve('x^2+y^3+z^4-10','x+2*y-3','z-5*x+4','x','y','z')

а затем полученные точные решения системы уравнений пересчитайте в приближенные, но обозримые.

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

функцией dsolve.

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

Здесь аргумент – t, dx/dt=Dx, в случае отсутствия начальных условий решение получается в общем виде, с неопределенными множителями, при указании достаточного количества начальных условий решение получается численным и при желании исполнителя может быть отображено графически.

Примеры.

>> dsolve('Dx=-x')

ans =

C1*exp(-t) .

>> dsolve('Dx=-x','x(0)=1')

ans =

exp(-t) .

>> dsolve('Dx=-x^2','x(0)=1')

ans =

1/(t+1)

>> t=0:.05:10;

>> plot(t,exp(-t),t,1./(t+1)),grid

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