如何用matlab求隐式函数的导数
如何用matlab求隐式函数的导数
隐函数求导的例子
假设有一个圆
我们可以把式
再将
对式
求
将
这个就是二阶导.
如何用matlab求隐式函数的一阶导数
方法1: 用二元隐函数存在的定理
具体来说, 二元函数的求导代码是这样写的:
- 把等号右边的式子全移到左边
- 分别对式子求 x 和 y 的偏导
syms x y; f = @(x,y) ( x^2+y^2-4 ); dx = diff(f(x,y),x); dy = diff(f(x,y),y); ans = - dy/dx
方法2: 用solve硬解
如果你不知道公式, 还可以用solve函数强解隐函数导数, 具体做法如下:
- 把y写成y(x)让matlab把其当做与x相关的导数
- 直接对式
x^2+y(x)^2=5
求导可得到这样的结果:2*x + 2*y(x)*diff(y(x), x) = 0
- 用变量
dydx
来代替原有的diff(y(x), x)
- 用solve函数解
dydx
syms x; g = str2sym('x^2+y(x)^2=5'); dgdx = diff(g,x) dgdx1 = str2sym('2*x + 2*y(x)*dydx = 0') solve(dgdx1,str2sym('dydx'))
如何用matlab求隐式函数的二阶导数
方法1: 链式法则
syms x y; f = @(x,y) ( x^2 + y^2 - 5 ); dfx = diff(f,x); dfy = diff(f,y); % 一阶隐式导 -dfx/dfy f1 = @(x,y) (-x/y); dydx = -x/y; % 二阶隐式导 d2ydx2 = diff(dydx,x)+diff(dydx,y)*dydx
方法2: 用solve硬解
如果不知道公式也一样可以用solve函数硬解, 不过要稍麻烦一点.
syms x y(x); s1 = str2sym('x^2+y^2=5'); m1 = diff(s1,x) syms dydx; s2 = subs(m1,diff(y),dydx) s3 = solve(s2,dydx) % 再求导后用一阶导替换diff(y) s4 = diff(s3,x) ans = subs(s4,diff(y),s3)
人工智障与神经病网络
https://www.cnblogs.com/JiangOil/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇