Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Создание и работа с символьными переменными, выражениями и функциями




Тема 3.3. Символьные (аналитические) вычисления и алгебраические преобразования

Введение в символьные вычисления

Создание и работа с символьными переменными, выражениями и

Функциями

Упрощение выражений, подстановки и разложение на множетели

Вычисление сумм рядов и произведений

Вычисление пределов

Вычисление производной

Графические возможности Simbolic

 

Введение в символьные вычисления

Система является MatLab самой крупной системой компьютерной математики, ориентированной на матричные и численные вычисления. Однако MatLab имеет также и средства аналитических вычислений. Пакет Symbolic Math Toolbox добавил системе MatLab качественно новые возможности, связанные с выполнением символьных вычислений и преобразований, которые были доступны только в системе принципиально иного класса, относящихся к компьютерной алгебре. Теперь MatLab, с учетом новых средств, становится в полной мере универсальной системой. Последняя реализация системы символьной математики Mapleв своем ядре и в расширениях имеет около 3000 функций. Система MatLab с пакетом Symbolic, включающим в себя чуть больше сот­ни символьных команд и функций, намного уступает Maple по ко­личеству таких команд и функций. Однако в данный пакет включе­ны лишь наиболее важные и широко распространенные функции. Кроме того, есть специальная команда, которая дает доступ к ядру Maple, что заметно расширяет круг используемых функций.

С помощью команды help symbolic можно получить перечень входящих в пакет команд и функций. Для получения справки по любой команде или функции можно использовать ко­манду help sym / name.m, где name – это имя соответствующей команды или функции, а name.m — имя m-файла, задающего данную команду или функцию. Пакет Symbolic Math Toolbox включает следующие типы математических вычислений, которые приведены в таблице 3.3.1.

Таблица 3.3.1.

   
Вычисления Дифференцирование, интегрирование, пределы, суммы и произведения, разложение в ряд Тейлора
Линейная алгебра  
   
   
   
   

 

С демонстрационными примерами пакета Symbolic можно ознакомиться с помощью директории Symbolic Toolbox.


 

Создание и работа с символьными переменными, выражениями и функциями

Поскольку переменные системы MatLab по умолчанию не определены и традиционно задаются как векторные, матричные, числовые и т. д., то есть не имеющие отношения к символьной математике, для реализации символьных вычислений нужно прежде всего, позаботиться о создании специальных символьных переменных. В про­стейшем случае их можно определить как строковые переменные, заключив имена в апострофы. Например,

>> sin(x)^2 + соs(х)^2 ??? Undefined function or variable 'x'. >> sin('x')^2 + cos('x')^2 ans = >>

 

Мы видим, что система MatLaв «возмутилась» нашей не­брежностью и сообщила, что функция или переменная х не опред­елена и ни о каких вычислениях синуса и косинуса речи быть не может. Вместе с тем она подсказала, как надо поступить - заключить имя переменной в апострофы, ибо таким образом система получает информацию о необходимости включить символь­ный режим вычислений. Поэтому во второй раз получен вполне осмысленный результат - сумма квадратов синуса и косинуса пе­ременной 'х' выдана равной 1.

Таким образом для работы с командами ядра Mаple в MatLab необходимо создать новый символьного объекта, который фактически является строковой переменной. То есть для проведения аналитических (символьных) операций нужно, чтобы соответствующие переменные были предварительно объявлены с помощью функции sym():

имя_переменной = sym( ' имя_переменной ' )

Например,

>>х = sym ('x') x= x >>a=sym ('alfa') a alfa >>

 

Рассмотрим пример иллюстрирующий различие между стандартными типами данных MatLabсимвольных объектов.

>>sqrt(2) ans= 1.4142 >>a=sqrt(sym(2)) a= 2^(1/2) >>double(a) ans= 1.4142 >>

 

Пакет Symbolic может работать с числами различных форматов, применяемых в MatLab. Рассмотрим следующий пример:

 

>>1/2+3/4 ans= 1.2500 >>sym(1/2+3/4) ans= 5/4 >>pi/2 ans= 1.5708 sym(pi/2) ans= pi/2 >>sin(pi/3) ans= 0.8660 >>sym(sin(pi/3)) ans= sqrt(3/4) >>exp(1) ans= 2.7183 >>sym(exp(1)) ans= 6121026514868074*2^(-51) >>

 

Необходимо обратить внимание на то, что MatLab производить вычисления с
представлением чисел в формате с плавающей точкой с двойной точности (double), в то время как пакет Symbolic стремиться представить числа в наиболее точном виде, то есть в целом или рациональном виде.

Необходимо также обратить внимание и на то, что результат символьных
преобразований отображается при выводе без отступа, которым сопровождается выдача иных результатов. Это позволяет сразу опознать его как символьный, в отличии от обычных численных результатов.

Для создания группы символьных объектов служит команда syms:

Syms argl arg2...

Например, набор команд

>>a=sym('a '); >>b=sym('b'); >>c=sym('c'); >>x=sym('x '); >>

 

соответствует следующей команде

>>syms a b c x >>

 

 

Рассмотрим еще один пример на применение команды syms.

>>syms x y1 y2 >>y1=sin(x)^2; >>y2=cos(x)^2; >>y1+y2 ans= sin(x)^2+cos(x)^2 >>

 

Для работы с действительными и комплексными числами существует ряд возможностей. Прежде всего это применение опций 'real', 'unreal', 'imag'. Например,

>>x=sym('x', real); >>y=sym('y', real); >>z=x+i*y z= x+i*y >>real(z) ans= x >>imag(z) ans= y

 

Функции real(z) и imag(z) обеспечивают выделение действительной и мнимой частей комплексного числа z.

Снятие наложенных ограничений на возможные значения переменных, например, определенной выше действительной переменной х, осуществляется командой

>>sym 'x', 'unreal' % или >>syms x unreal

 

что делает переменную х не вещественной.

Из вышеприведенных примеров видно, что создание символьного выражения осуществляется командой

sym('символьное_выражение ')

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

>> sym x a b >> f=(sin(x)+a)^2*(cos(x)+b^2/sqrt(abs(a+b)) f=(sin(x)+a)^2*(cos(x)+b^2/sqrt(abs(a+b)) >>

 

В математических выражениях могут использоваться как обычные, так и символьные переменные. Функция findsym(S) позволяет выделить символьные переменные в составе выражения S. Онавозвращает в алфавитном порядке список всех символьных переменных выражения S. При отсутствии таковых возвращается пустая строка. Например:

>>sym x, z, y >> а =2; b = 4; >> findsym (a*x^2 + b*y + z) ans = х, у, z >>findsym(a + b + x + y + z,) ans = х, у, z >>

 

Символьные переменные могут являться элементами матриц и векторов, причем с ними можно выполнять различные операции. Например,

>>syms a b c d >>M=[a b; c d] M= [ a, b] [ c, d] >> inv(M) ans= [ d/(a*d-b*c), -b/(a*d-b*c)] -c/(a*d-b*c), a/(a*d-b*c)] >>

 

MatLab в отличие от современных систем MathCad, Maple или Mathematica, пока не способна выводить выражения и результаты их преобразований в естественной математической форме с использованием общеприня­тых спецзнаков для отображения интегралов, сумм, произведений и т. д. Тем не менее некоторые ограниченные текстовым форматом воз­можности близкого к математическому виду вывода обеспечивает функция pretty(S). Она позволяет вывести выражения S в формате, приближенном к математическому формату, например,

>> syms x a b >> f=(sin(x)+a)^2*(cos(x)+b)^2/sqrt(abs(a+b)) f=(sin(x)+a)^2*(cos(x)+b)^2/sqrt(abs(a+b)) >> pretty(f) 2 2 (sin(x) + a) (cos(x) + b) ------------------------------- 1/2 | a + b | >>

 

Символьные операции позволяют находить или точные значения выражения или значения со сколь угодно большой точностью. Как известно для преобразования значения числовой переменной в символьную служит функция sym(). Причем при переходе от числовых к символьным выражениям по умолчанию используется запись чисел в виде рациональной дроби. Использование рациональных дробей при выполнении символьных вычислений означает, что всегда получается точный результат, не содержащий погрешность округления.

Для вычисления символьного выражения с заданной точностью предназначена функция vpa():





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 477 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

2484 - | 2299 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.