Символьное дифференцирование выполняет функция diff (fun, var, n). Она находит производную функции fun по переменной var, n – порядок производной.
Возможны разные форматы вызова этой функции. Если параметр один – дифференцируемое выражение, то автоматически вычисляется первая производная по символьной переменной, входящей в выражение; если в него входит несколько переменных, то производная вычисляется по той переменной, которая по алфавиту ближе к х.
>> f=sin(x)/x
f =
Sin(x)/x
>> diff (f) % То же самое, что diff (f, x, 1)
ans =
cos(x) / x- sin(x) / x^2
>> diff (f, 2) % Вторая производная
ans =
-sin(x)/x-2*cos(x)/x^2+2*sin(x)/x^3
Пример нахождения производных разных порядков для функции двух переменных
>> syms x y
>> f1=sin(x)-log(y)
f1 =
Sin(x)-log(y)
>> a=diff (f1, x) % Производная 1 порядка по х
a =
cos(x)
>> subs(a, 1.5) % Значение 1 производной при х=1.5
ans =
0.0707
>> diff(f1, x, 2) % Производная 2 порядка по х
ans =
-sin(x)
>> diff (f1, y) % Производная 1 порядка по у
ans =
-1/y
>> b=diff (f1, y, 2) % Производная 2 порядка по у
b =
1/y^2
>> subs (b, 2) % Значение 2 производной при у=2
|
|
ans =
0.2500
Вычисление интеграла
Средства символьной обработки дают возможность находить неопределенный и определенный интеграл.
Нахождение неопределенного интеграла функции f(x) сводится к нахождению первообразной функции F(x) в наиболее общем виде , т.е. такой функции, что . Символьное вычисление неопределенного интеграла в ML выполняется с помощью функции int (fun,var), где fun – подынтегральная функция, var – переменная интегриривания. Если параметр var не указан, а в fun несколько переменных, то интеграл вычисляется по переменной, наиболее близкой по алфавиту к х. Например, найдем интеграл от функции sin(x)-log(y)
>> syms x y
>> f1=sin(x)-log(y);
>> int (f1, x) % Интеграл от функции ( sin(x)-log(y)) dx по х
ans =
-cos(x)-log(y)*x
>> int (f1, y) % Интеграл от функции ( sin(x)-log(y))dу по у
ans =
sin(x)*y-y*log(y)+y
Определенный интеграл вычисляются с помощью этой же функции int (), но в обращении к ней добавляются ещё 2 параметра – пределы интегрирования. Найдем интеграл
>> I=int ('tan(z)', 0, pi/4) % Переменную интегрирования не указываем, т.к. она единственная в функции
I =
1/2*log(2)
>> vpa (I, 5) % Результат в вещественном виде
ans =
.34658