Здавалка
Главная | Обратная связь

Символьные переменные



Лабораторная работа №6

Разложение функции в ряд Тейлора

 

Цели работы:

· знакомство с символьными переменными и некоторыми функциями Symbolic toolbox;

· нахождение оценки точности разложения функции в ряд Тейлора в окрестности заданной точки.

Необходимое оборудование и материалы.

· ОС Windows XP, Vista, 7;

· Matlab 6.5 или 7.x;

· ПК класса не ниже Pentium II, RAM 128Mb.

Трудоемкость:4 академических часа.

 

Символьные переменные

 

Символьные переменные и функции являются объектами класса sym, в отличие от числовых переменных, которые содержатся в массивах double array. Символический объект создается при помощи функции syms. Команда

 

>> syms x a b

 

создает три символьные переменные x, a и b.

Конструирование символьных переменных от переменных класса sym производится с использованием обычных арифметических операций и обозначений для встроенных математических функций, например

 

>> f=5*x^2+6*x-4

f =

5*x^2 + 6*x - 4

 

>> g=sin(x)*cos(x)^2

g =

cos(x)^2*sin(x)

 

Размер памяти, отводимый по умолчанию под символьные переменные, достаточно большой – посмотрите информацию об определенных только что переменных в окне Workspace браузера рабочей среды или вызовите команду whos:

 

>> whos x a b f g

Name Size Bytes Class

 

a 1x1 126 sym

b 1x1 126 sym

f 1x1 184 sym

g 1x1 184 sym

x 1x1 126 sym

 

Символьные операции позволяют находить точные значения выражений или значения со сколь угодно большой точностью. Для преобразования значения числовой переменной в символьную служит функция sym. Введите массив типа double array

 

>> A=[rand(1) 1.4 sin(5);

-8 1/3 exp(-2)]

A =

0.1270 1.4000 -0.9589

-8.0000 0.3333 0.1353

 

и образуйте соответствующий ему символьный массив

 

>> B=sym(A)

B =

[ 4575182228323196*2^(-55), 7/5, -8637222012098867*2^(-53)]

[ -8, 1/3, 4875967449235916*2^(-55)]

 

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

 

>> c=sym(sqrt(2))

c =

sqrt(2)

>> cn=vpa(c,20)

cn =

1.4142135623730950488

>> cn=vpa(c,40)

cn =

1.41421356237309504880168872420969807857

 

Рассмотрим операции с полиномами.

Функция collect вычисляет коэффициенты при степенях независимой переменной.

Функция expand представляет полином суммой степеней без приведения подобных.

Символьные переменные разлагаются на множители функцией factor.

 

>> p=x^3+2*x-3

p =

x^3 + 2*x - 3

 

>> g=factor(p)

g =

(x - 1)*(x^2 + x + 3)

 

>> f=collect(g)

f =

x^3 + 2*x - 3

 

>> f-p

ans =

 

Для представления символьного полинома в векторном виде используется функция sym2poly, а для обратного преобразования функция poly2sym.

Пример 1. Найти произведение полиномов

с использование символьных переменных и преобразовать результат к векторному виду.

 

% файл-сценарий вычисления произведения полиномов

clear all

close all

clc

syms x % определение символьной переменной

% перемножение полиномов

PSym2=(x+5)*(x-4)*(2*x+3)*(x^2+2*x+5)

% раскрытие скобок

PSym3=collect(PSym2)

% представление полинома в виде массива коэффициентов

PPoly3=sym2poly(PSym2)

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.