符号微分
1. diff
syms a b t x y z;
fh1=sqrt(1+exp(x));
%求(1),未指定求导变量和阶数,按缺省规则处理
df1 = diff(fh1)
fh2=x*cos(x);
df2 = diff(fh2,x,2) %求(2),求f对x的二阶导数
df23 = diff(fh2,x,3) %求(2),求f对x的三阶导数
ft1=a*cos(t); ft2=b*sin(t);
%求(3)。按参数方程求导公式求y对x的导数
df3 = diff(ft2)/diff(ft1)
df32 = (diff(ft1)*diff(ft2,2)-diff(ft1,2)*diff(ft2))/(diff(ft1))^3
%求(3)。求y对x的二阶导数
fh4=x*exp(y)/y^2;
df4x = diff(fh4,x) %求(4)。z对x的偏导数
df4y = diff(fh4,y) %求(4)。z对y的偏导数
fh5=x^2+y^2+z^2-a^2;
%求(5)。按隐函数求导公式求z对x的偏导数
zx = -diff(fh5,x)/diff(fh5,z)
zy = -diff(fh5,y)/diff(fh5,z) %按隐函数求导公式求z对y的偏导数
syms t f(t)
Ft = t^2*f(t)*sin(t);
DFt3 = diff(Ft,t,3) %对t求三阶导数
res1 = subs(DFt3,f(t),exp(-t))
res1 = simplify(res1)
Ftsubs = subs(Ft,f(t),exp(-t)); %先把exp(-t)带入,再求三阶导数
res2 = simplify(diff(Ftsubs,t,3))
2.隐函数的偏导数
function dy = impldiff(f,x,y,n)
if mod(n,1) ~= 0 % n非整数
error('n should positive integer, please correct.')
else
F1 = -simplify(diff(f,x)/diff(f,y)); % 一阶偏导
dy = F1;
for i = 2:n
% 按递推公式编写
dy = simplify(diff(dy,x) + diff(dy,y)*F1);
end
end
end
3.参数方程的导数
function result = paradiff(y,x,t,n)
if mod(n,1) ~=0
error('n should positive integer, please correct');
elseif n==1
result = diff(y,t)/diff(x,t);
else
%递归调用
result = diff(paradiff(y,x,t,n-1),t)/diff(x,t);
end
end
4.微分应用
x = sym('x');
y = x^3+3*x-2; %定义曲线函数
df = diff(y); %对曲线求导数
gh = df-4;
%求方程df-4=0的根,即求曲线何处的导数为4
sol = solve(gh)
fval = subs(y,x,sol)
plot(sol,fval,'r.','MarkerSize',15)
y1 = 4*(x-sol(1))+fval(1); %切线一
y2 = 4*(x-sol(2))+fval(2); %切线二