Символические вычисления в MatLab: Методические указания к лабораторной работе № 6

Страницы работы

17 страниц (Word-файл)

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

"ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ"

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторной работе № 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.

Символические переменные могут являться элементами векторов и матриц. Элементы строк матриц при вводе отделяются пробелами или запятыми, а столбцов - точкой с запятой, так же как и при вводе обычных матриц. В результате образуются символические матрицы и векторы, к которым применимы матричные и поэлементные операции, а также встроенные функции. Рассмотрим пример ввода и умножения двух символических матриц:

Похожие материалы

Информация о работе