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

В математическом виде:

>> pretty(collect(pol,y))

2

((x + 1) + 1) y + 2 x - 2

5). Функция factor (expr) раскладывает символьное выражение на простые

множители

>> factor (pol) % Преобразование функции pol=y*(x+1)^2+(x-2)+(x+y) ans =

y*x^2+2*y*x+2*y+2*x-2

>> factor (x^3-1) % Разложение функции x^3-1

ans =

(x-1)*(x^2+x+1)

>> factor (36) % Разложение числа 36

ans =

2 2 3 3

Построение графиков символьных функций

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

График функции одной переменной строится командой ezplot (fun, Xmin, Xmax). График функции fun будет построен на отрезке

[Xmin, Xmax], а если отрезок не указан, то берется интервал [-2*pi, 2*pi].

>>syms x

>> f=cos(x/2)+1/5*cos(5*x)

f =

cos(1/2*x)+1/5*cos(5*x)

>> ezplot (f) % График на отрезке [-2*pi, 2*pi]

или

>> ezplot('cos(x/2)+1/5*cos(5*x)')

39

>> ezplot (f, 0, pi) такое обращение возможно не во всех версиях Матлаба,

или можно записать

>> ezplot (f, [0 pi])

Используя режим наложения графиков с помощью команды hold on, можно

последовательно строить несколько графиков в одних осях.

40

Особенностью функции ezplot () является возможность создания графика функции, заданной неявно. Ezplot (fun, Xmin, Xmax, Ymin, Ymax) строит график функции f (x,y) = 0, [Xmin,Xmax] – пределы изменения первого по алфавиту аргумента, [Ymin,Ymax] – пределы изменения второго по алфавиту аргумента.

>> ezplot ('x^2+y^2-1', [-2 2 -2 2])

Аналогично функциям polar (построения графиков вида r=r(ψ), a≤ψ≤b в полярной системе

координат), surf, mesh, plot3 для символьных функций существуют функции

ezpolar – построение в полярных координатах

ezsurf – построение поверхности вида z=f(x,y)

ezmesh – строит поверхность с нанесением контурных линий

ezplot3 - строит поверхность, заданную параметрически.

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

В ML существуют средства для решения уравнений численными методами.

Кроме того, есть возможность решать уравнения в символьном виде. Функция solve (expr, var) возвращает решение уравнения, задаваемого выражением expr

относительно переменной var. Ищутся корни уравнения или нули выражения.

41

>> syms a b c x

%Решается уравнение a*x^2+b*x+c=0 отн. х

%Если коэффициенты не заданы, то решение в общем виде

%Если коэффициенты заданы, то результат – числовое значение

>> y=solve (a*x^2+b*x+c, x)

y =

-(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)

>> pretty(y)

 

 

+-

 

-+

 

|

 

2

1/2

|

|

 

b + (b - 4 a c)

|

|

- -------------------

|

|

 

2 a

|

 

|

 

 

|

 

|

 

2

1/2 |

 

|

 

b - (b - 4 a c)

|

|

- -------------------

|

|

 

2 a

|

 

+-

 

-+

 

Если второй параметр не указан, то по умолчанию уравнение решается относительно х.

>> y=solve ('a*x^2+b*x+c=0')

y =

-(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)

Видим, что уравнение решается в общем виде.

Пусть задан полином, найдем корни полинома 3*x4+2*x3-x2-15*x+7 в

числовом и символьном виде:

%выч. корн.пол 3*x^4+2*x^3-x^2-15*x+7

p=[3 2 -1 -15 7];

42

disp('корни пол')

x=roots(p)

disp('символьные вычисления ')

disp('корни полинома ')

syms x

z=solve(3*x^4+2*x^3-x^2-15*x+7)

zs=vpa(z)

Получим на экране:

корни пол x =

-1.2505 + 1.4296i -1.2505 - 1.4296i 1.3581 0.4762

символьные вычисления корни полинома

z =

 

1.3581107410504754041265449373916

 

 

0.4762357236114296167745354966965

 

 

1.4296306305875367633296037188572*i

-

1.2505065656642858437838735503774

 

-

1.4296306305875367633296037188572*i

-

1.2505065656642858437838735503774

zs =

 

1.3581107410504754041265449373916

 

 

0.4762357236114296167745354966965

 

 

1.4296306305875367633296037188572*i

-

1.2505065656642858437838735503774

 

-

1.4296306305875367633296037188572*i

-

1.2505065656642858437838735503774

>> solve (2*x^3-x-1)

43