Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.doc
Скачиваний:
202
Добавлен:
13.11.2018
Размер:
1.36 Mб
Скачать

Xlabel(‘t’), ylabel(‘y, dy/dt’)

legend(‘ y’,’ dy/dt’)

grid

pause

plot(y(:,1),y(:,2))

grid

title(‘Фазовый портрет колебаний’)

Xlabel(‘y’), ylabel(‘dy/dt’)

close

Рекомендуется изучать тексты встроенных m-файлов (они выводятся по команде type name; кроме того, можно вызывать тексты и напрямую, загружая их в окно редактора). Это – образцы тщательно разработанных фирмой MathWorks программ с использованием всех возможностей системы MATLAB.

6. Символьные вычисления

Символьные, т.е. аналитические, вычисления в среде MATLAB 5.x реали­зу­ются, если инсталлирован пакет Symbolic Math Toolbox (его файлы размещаются в папке toolbox\symbolic). В этом случае используется до 100 наиболее часто применяемых функций символьной системы Maple V R4, и MATLAB становится универсальной системой, воз­­мож­но­сти которой расширяются еще более благодаря прямому доступу к ядру Maple. Ниже рассматриваются возможности версии пакета Symbolic 2.0.1.

Для получения справки по пакету необходимо набрать команду » help symbolic. Перед началом работы рекомендуется вызвать следующие демонстрационные программы: symintro – начальное ознакомление с пакетом Symbolic; symcalcdemoисчисление; symlindemoсим­вольная линейная алгебра; symeqndemo – символьное решение уравнений.

Рассмотрим наиболее важные варианты символьных вычислений в системе MATLAB.

6.1. Определение символьной переменной

Введем команду

» sin(x).^2+cos(x).^2

??? Undefined function or variable 'x'.

Величина х воспринимается как числовая переменная, поэтому появляется сообщение: «Функция или переменная ‘x’ не определены». Для того чтобы операция была корректной, величину х необходимо определить как символьную, например

» x=sym(‘x’);

Альтернативный вариант определения символьной переменной (применяется также применительно к групповым определениям):

» syms x;

Продолжаем пример:

» sin(x)^2+cos(x)^2

ans =

sin(x)^2+cos(x)^2

Переменная ans в данном случае имеет смысл символьного выражения. Проверяем, нельзя ли его упростить, т.е. привести к более компактной форме:

» simplify(ans)

ans =

1

Следует обратить внимание на то, что результат выполнения символьной операции выводится без отступа.

Более простой способ решения данной задачи:

» sin('x')^2+cos('x')^2

ans =

1

6.2. Основные функции

Функция expand(s) представляет элементы символьного выражения в развернутой форме:

» expand((x-2)^3*(1-x))

ans =

7*x^3-x^4-18*x^2+20*x-8

Функция factor(s) используется для разложения символьного выражения на простые множители:

» factor(sym('125'))

ans =

(5)^3

или символьные:

» syms a b; A=[a^2-b^2,a^3+b^3];

» factor(A)

ans =

[(a-b)*(a+b), (a+b)*(a^2-a*b+b^2)]

Данная функция применяется также при разложении скалярных чисел на простые множители:

» factor(sym('5040'))

ans =

(2)^4*(3)^2*(5)*(7)

В этом примере 5040=7!; встроенной функции, вычисляющей факториал n!, нет, но ее нетрудно создать самостоятельно (и включить в соответствующий раздел системы):

% Вычисление факториала n!

function ypr=fact(n);

ypr=1;

if n~=0

for k=1:n

ypr=ypr*k;

end

end

Функция subs – подстановка:

subs(s) – замена свободных символьных переменных их числовыми значениями из рабочего пространства:

» a=1;

» u=sym('sin(pi/(2*a))');

» subs(u) % sin(pi/2)

ans =

1

subs(s,new) – замена свободных символьных переменных их числовыми значениями из списка new:

» syms a s x

» x=pi/16;

» u=sin(a^s*x);

» subs(u,[a s],[2 3]) % sin(pi/2)

ans =

1

subs(s,old,new) – замена свободных символьных переменных old числовыми значениями из списка new:

» subs(u,[a s],[3 2])

ans =

0.9808

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