matlab 符号计算方法05

该篇内容介绍了如何使用符号计算库进行微分运算,包括未指定变量的导数、高阶导数、隐函数求导、参数方程求导及微分方程的应用。涉及一阶、二阶、三阶导数计算,并展示了隐函数偏导数的求解方法以及参数方程的导数计算。同时,通过实例展示了如何寻找曲线的切线方程和根。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

符号微分

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); %切线二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值