– компьютер, с установленной операционной системой Windows XP, Vista, 7, 8;
–Matlab (ver 6.0 и выше)
Цели работы:
1. знакомство с символьными переменными и некоторыми функциями Symbolic toolbox;
2. разложение функции в ряд Тейлора в окрестности заданной точки.
Содержание работы:
1. Изучить символьные переменные и некоторые функции Symbolic toolbox.
2. Выполнить практические задания и сделать соответствующие выводы.
3. Оформить отчет.
Форма отчетности: индивидуальный отчет в электронном виде с типовым титульным листом в формате MS Word с последующей распечаткой на бумажном носителе.
Содержание отчета:
1. Цель работы.
2. Текст задания.
3 Результат выполнения задания (необходимые расчеты, блок-схемы, тексты и результаты работы программ).
4. Выводы в развернутой форме с соответствующими пояснениями.
Длительность работы: 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
Вычисления с рациональными дробями позволяет получить значение символьного выражения с любой степенью точности, т.е. найти сколь угодно много значащих цифр результата. Для вычисления символьных выражений предназначена функция 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.
Пример. Найти произведение полиномов
с использование символьных переменных и преобразовать результат к векторному виду.
% файл-сценарий вычисления произведения полиномов
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)
Разложение функции в ряд Тейлора
Разложение математических функций в ряд Тейлора позволяет определить функция taylor, например:
>> syms x
>> taylor(sin(x))
ans =
x^5/120 - x^3/6 + x
По умолчанию выводятся шесть членов ряда разложения в окрестностях точки ноль. Число членов разложения можно задать во втором дополнительном параметре. Точка, в окрестности которой проводится разложение, указывается в третьем входном аргументе.
Например, получим 8 членов разложения функции в окрестности точки .
С увеличением числа членов ряда растет точность приближения исходной функции в окрестности точки, относительно которой проводится разложение. На рис. 6.1-6.2 представлены графики функции и рядов Тейлора для данной функции с заданным числом членов разложения.
Рис. 6.1. Графики функции и ее аппроксимации
Рис. 6.2. Графики функции и ее аппроксимации вблизи точки, относительно которой происходит разложение в ряд Тейлора
В состав Symbolic Math Toolbox входит приложение taylortool с графическим интерфейсом, предназначенное для наглядной демонстрации разложения в ряд различных функций, в том числе и определенных пользователем. Команда taylortool приводит к появлению окна приложения, изображенного на рис. 6.3.
Рис. 6.3. Пример работы приложения taylortool. Синим показана исходная функция, а красным – частичная сумма ряда Тейлора
Пользователь может вводить формулы различных функций в строке f(x)= в соответствии с правилами MATLAB и исследовать приближение функции на произвольном интервале отрезком ряда Тейлора, содержащим различное число членов разложения. Интерфейс приложения taylortool достаточно простой и не требует дополнительных пояснений.
Пример. Построим график ошибки и модуля ошибки для функции f=sin(x) при использовании аппроксимации полиномом третьей степени на отрезке [-2; 2].