- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
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