Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.pdf
Скачиваний:
51
Добавлен:
23.07.2020
Размер:
2.68 Mб
Скачать

ans =

1 i/2 - 1/2

- i/2 - 1/2

Так же просто решаются системы уравнений. Решаемые уравнения указывают параметрами функции solve(), также можно явно указать переменные,

относительно которых решается система. Например, решим систему уравнений x^2+y^2=25

y-x=1

>>syms x y

>>[x y]=solve ('x^2+y^2=25', 'y-x=1', x, y) %x,y - символьные

x = 3 -4 y = 4 -3

У системы 2 решения: х=3, у=4 и х=-4, у=-3.

Можно в общем виде решить систему линейных уравнений

a1*x1+b1*x2=c1 a2*x1+b2*x2=c2

>> [x1, x2]=solve('a1*x1+b1*x2=c1','a2*x1+b2*x2=c2')

x1 =

(-b2*c1+c2*b1)/(-a1*b2+b1*a2)

x2 =

-(a1*c2-c1*a2)/(-a1*b2+b1*a2)

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

Получить символьное решение дифференциального уравнения в ML проще,

чем получить решение численными методами. При использовании численных

методов решением задачи является таблица значений функции, при символьном

44

решении результатом является функция. Решение может быть найдено с помощью функции dsolve (expr, cond, var), в которой выражение expr описывает обыкновенное дифференциальное уравнение, cond – начальное условие, var

независимая переменная (её имя не должно начинаться с D). Если она не задана, то по умолчанию независимой переменной считается t.

Существуют правила записи дифференциального уравнения. Для обозначения операции дифференцирования используется символ D. Производная n-го порядка указывается как Dn, т.е. D = dy / dt, a D2 = d2 y / dt2.

Решим уравнение dy / dx=(y+1 )/ x

Если нач.усл. не указаны, то результат будет содержать константы

(постоянные) интегрирования, которые обозначаются C1, C2…

>> dsolve ('Dy=(y+1)/ x', 'x')

ans =

C2* x – 1 % С2 – постоянная интегрирования

Решим уравнение t*(1+t^2)*dx/dt = x+x*t^2-t^2 с начальным условием

x(1) =- pi/4

>> dsolve('t*(1+t^2)*Dx=x+x*t^2-t^2', 'x(1) =-pi/4')

ans =

-t* atan (t)

Решим уравнение 5y(x)+xy'(x)=x^2y(x), y(0)=2

%диф ур 5y(x)+xy'(x)=x^2y(x), y(0)=2

disp('решение диф ур')

dsolve('5*y+x*Dy=x^2*y','y(0)=2')

Получим:

решение диф ур ans =

2*exp((t*(x^2 - 5))/x)

В случае уравнения второго порядка 4y''+16y'+15y=4e-3x/2 при начальных условиях у(0)=3,y’(0)=-5.5 (количество начальных условий должно соответствовать порядку уравнения).

45

>> dsolve ('4*D2y+16*Dy+15*y=4*exp(-3*x/2)','y(0)=3','Dy(0)=-5.5','x')

ans =

2/exp((3*x)/2) + 2/exp((5*x)/2) + x/exp((3*x)/2) - exp(x)/exp((5*x)/2)

Можно получить в другом виде (числовом):

Vpa(ans,4) ans =

2.0/exp(1.5*x) + 2.0/exp(2.5*x) - (1.0*exp(x))/exp(2.5*x) + x/exp(1.5*x)

Для решения системы дифференциальных уравнений в параметрах функции dsolve () указывают несколько уравнений и несколько начальных условий. Найдем решение системы x'=x+2y, y'=3x-4y с начальными условиями х(0)=1 и у(0)=2.

>> [x y]=dsolve('Dx=x+2*y','Dy=3*x-4*y','x(0)=1','y(0)=2')

x =

(10*exp (2*t)) / 7 – 3 / (7*exp (5*t)) y =

(5*exp (2*t)) / 7 + 9 / (7*exp (5*t))

Вычисление пределов

Число b называется пределом последовательности у1, у2, …уn, …, если по мере возрастания номера n член уn неограниченно приближается к b. Предел

обозначается lim yn b . n

Для нахождения предела символьного выражения fun в точке х, стремящейся к а предусмотрена функция limit (fun, x, a).

Fun – символьная функция, х - переменная, a - точка, в которой ищется предел.

Например, предел функции (х-1)/(х+5)

Надо задать символьную переменную

>> syms x

Построим график

>> f=(x-1)/(x+5)

f =

46

(x-1)/(x+5)

>>ezplot(f,-10,10)

>>grid

В качестве точки предела используем inf (бесконечность)

>> limit (f, x, inf)

% Предел при

x

ans =

 

 

1

 

 

>> limit (f, x ,-inf)

% Предел при

x

ans =

 

 

1

 

 

>> limit (f, x, -5)

% Предел при x 5

ans =

NaN

>> limit (f, x, 5)

% Предел при

x 5

ans =

2/5

47