Табулирование функции.

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

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

Символьные вычисления в среде MATLAB.

Лекция № 7.

 

В состав MATLAB входит ToolBox Symbolic Math, предназначенный для вычислений в символьном виде. Преобразование выражений, отыскание аналитического решения задач линейной алгебры, дифференциального и интегрального исчисления, получение численного результата с любой точностью-вот далеко не полный перечень возможностей, предоставляемых данным ToolBox. Объектно-ориентированный подход, реализованный в MATLAB, позволил сделать работу с символическими выражениями простой и удобной.

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

Команда

>> syms x a b

создает три символьные переменные х, а, 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 ( ):

Определенная функция f также является символической переменной типа sym object, в чем несложно убедиться при помощи команды whos:

>> whos f

Name Size Bytes Class

f 1x1 204 sym object

Grand total is 41 elements using 204 bytes

Имеющиеся символические переменные и функции позволяют образовывать новые символические выражения:

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

Замечание. Функция sym может быть использована для объявления символических переменных. Команда syms a,b,c эквивалентна последовательности a=sym('a');b=sym('b');c=sym('c').

 

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

· определение погрешности интерполяции;

· вычисление табличных разностей с целью определения степени интерполяционного полинома;

· определение области изоляции корня;

· оценка численных значений функции в широком диапазоне.

В среде MATLAB табулирование функции осуществляется с помощью функции subs(f,x,x1), где:

f-функция, заданная аналитически;

x - аргумент функции f;

х1 - вектор значений аргумента х, при котором определяется значение функции f.

Переменная х1 может представляться в виде вектора или при постоянном шаге в виде: , где -начальное значение х1, - шаг, -конечное значение х1.

Технология табулирования функции

1. Определение группы символьных переменных с помощью функции syms.

2. Образование вектора х1.

3. Ввод функции табулирования

4. Образование функции табулирования subs.

5. Получение решения путем нажатия клавиши <Enter>.

Пример: найти значения функции для х1 в диапазоне [0;1] с постоянным шагом h = 0.01 и в случае, когда х1=[0, 0.5, 1, 3, 5].

Решение:

>> syms x,x1,y;

>> x1=[0,0.5,1,3,5];

>> y=x.^(3/2);

>> subs(y,x,x1)

ans = 0 0.3536 1.0000 5.1962 11.1803

Функция subs позволяет табулировать одновременно несколько функций. Для этого необходимо функцию представить в виде матрицы табулируемых функций, например,

MATLAB позволяет табулировать функции, используя матричные операции и не обращаясь к функции subs. Технология вычислений в этом случае состоит в выполнении следующих операций;

1. Определение символьных переменных с помощью функции syms.

2. Образование вектора аргумента х.

3. Образование матрицы, элементами которой являются аргумент х и табулируемые функции.

4. Получение решения путем нажатия клавиши <Enter>.

5. При необходимости получение решения в столбик используется функция (транспонирование).

Пример: найти значения функций в диапазоне изменения х, равном [0;1], с шагом 0,2. Решение получить в виде матрицы.

Решение:

>> syms x,y;

>> x=0:0.2:1;

>> y=[x; exp(x);sin(x);cos(x)]

y =

0 0.2000 0.4000 0.6000 0.8000 1.0000

1.0000 1.2214 1.4918 1.8221 2.2255 2.7183

0 0.1987 0.3894 0.5646 0.7174 0.8415

1.0000 0.9801 0.9211 0.8253 0.6967 0.5403

>> y'

ans =

0 1.0000 0 1.0000

0.2000 1.2214 0.1987 0.9801

0.4000 1.4918 0.3894 0.9211

0.6000 1.8221 0.5646 0.8253

0.8000 2.2255 0.7174 0.6967

1.0000 2.7183 0.8415 0.5403