МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
"ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ"
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторной работе № 6
"Символические вычисления в MatLab"
по курсу "Математические пакеты"
для студентов специальностей 7.091501, 7.091502, 7.091503
дневной и заочной форм обучения
Харьков НТУ "ХПИ" 2006
1. Цель лабораторных занятий
Получение практических навыков работы с пакетом MatLab при вычислениях в символическом виде.
2. Основы СимВоЛиЧЕСКИХ выЧИСЛЕНИЙ В MATLAB
2.1. Символические переменные и функции
В состав MatLab входит ToolBox Symbolic Math, предназначенный для вычислений в символическом виде. Преобразование выражений, определение аналитических решений задач линейной алгебры, дифференциального и интегрального исчисления, получение численных результатов с любой точностью - вот далеко не полный перечень возможностей, предоставляемых ToolBox.
Символические переменные и функции являются объектами класса sym object, в отличие от числовых переменных, которые содержатся в массивах double array. Символический объект создается при помощи функции syms.
Команда
>> syms x a b
создает три символические переменные x, a, b. Конструирование символических функций от переменных класса sym object производится с помощью обычных арифметических операций и обозначений для встроенных математических функций, например:
>> f=(sin(x)+a)^2*(cos(x)+b)^2/sqrt(abs(a+b))
f=
(sin(x)+a)^2*(cos(x)+b)^2/abs(a+b)^(1/2)
Запись формулы в одну строку не всегда удобна, более естественный вид в виде дроби позволяет получить функция pretty:
>> pretty(f)
2 2
(sin(x) + a) (cos(x) + b)
---------------------------
1/2
| a + b |
Определенная функция f также является символической, в чем не трудно убедиться при помощи команды whos.
Имеющиеся символические переменные и функции позволяют образовывать новые символические выражения:
>> syms y
>> g=(exp(-y)+1)/exp(y)
g =
(exp(-y)+1)/exp(y)
>> h=f*g
h =
(sin(x)+a)^2*(cos(x)+b)^2/abs(a+b)^(1/2)*(exp(-y) +1)/exp(y)
>> pretty(h)
2 2
(sin(x) + a) (cos(x) + b) (exp(-y) + 1)
-----------------------------------------
1/2
| a + b | exp(y)
Символическую функцию можно создать без предварительного объявления переменных при помощи функции sym, входным аргументом которой является строка с выражением, заключенным в апострофы:
>> z=sym('c^2/(d+1)')
z =
c^2/(d+1)
>> pretty(z)
2
c
-----
d + 1
Замечание 1
Функция sym может быть использована для объявления символических переменных. Команда syms a b с эквивалентна последовательности команд a=sym('a'), b=sym('b'), с=sym('c'):
>> syms a b c
>> whos a b c
Name Size Bytes Class
a 1x1 126 sym object
b 1x1 126 sym object
c 1x1 126 sym object
Grand total is 6 elements using 378 bytes
>> a1=sym('a1'), b1=sym('b1'), c1=sym('c1')
a1 =
a1
b1 =
b1
c1 =
c1
>> whos a1 b1 c1
Name Size Bytes Class
a1 1x1 128 sym object
b1 1x1 128 sym object
c1 1x1 128 sym object
Grand total is 9 elements using 384 bytes
При работе в области комплексных чисел следует указать, что определяемые переменные являются в общем случае комплексными. Комплексные символические переменные задаются командой syms с опцией unreal. Опция real означает, что переменные трактуются как вещественные.
Рассмотрим пример, где результат символических вычислений зависит от того, какие символические переменные используются - вещественные или комплексные. Объявим две вещественные переменные a и b, и образуем комплексное число, считая, что a является действительной частью, а b - мнимой, затем найдем сопряженное к нему число при помощи conj:
>> syms a b real
>> p=conj(a+i*b)
p =
a-i*b
Произведем аналогичные действия, предварительно объявив a и b комплексными символьными переменными:
>> syms a b unreal
>> q=conj(a+i*b)
q =
conj(a+i*b)
Таким образом, в общем случае p ¹ q.
Символические переменные могут являться элементами векторов и матриц. Элементы строк матриц при вводе отделяются пробелами или запятыми, а столбцов - точкой с запятой, так же как и при вводе обычных матриц. В результате образуются символические матрицы и векторы, к которым применимы матричные и поэлементные операции, а также встроенные функции. Рассмотрим пример ввода и умножения двух символических матриц:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.