3*(x^2)+8*x*y+2*(y^2)-3=0 对 x 求导。如果用 sympy 或 sage 求导函数?

2020-09-28 09:57:54 +08:00
 Hlianbobo
3*(x^2)+8*x*y+2*(y^2)-3=0 对 x 求导 用 sympy 或 sage 如何写代码呢?因为原题没有直接给出 y=x 的表达式。如果用代码求解。需要第一步先解方程么?然后再对 y 的解求导数?

是否有一步到位求导数的解法?用代码实现。
1757 次点击
所在节点    Python
10 条回复
InkStone
2020-09-28 10:31:01 +08:00
直接对方程两边求导,y 是一个 x 的函数,所以关于 y 的求导都适用复合函数求导

比如 (xy)' = x'y + y'x = y+y'x

这里注意,你最终要求的就是 y'。

所以求完导之后,把 y'放一边,其它所有式子放另一边,再想办法把 y 消掉,应该就可以了。
crackhopper
2020-09-28 10:39:54 +08:00
首先 x,y 是不是关联的,还都是自变量,这个很重要。看你的描述应该是有关系的。如果是有关系的,按照你这个写法,反解 y 也很容易,为何不反解?
Vinty
2020-09-28 16:04:52 +08:00
你的意思是
已知 f(x,y)=0
求 y' = g‘(x)?
那只能先解出 y=g(x),才能算出 y',但是这种不一定有解析解

我觉得你的提问可能是一个 XY 问题
Hlianbobo
2020-09-28 18:20:59 +08:00
@InkStone 谢谢回复,你讲的帮我打开了思路。我手工去验证一下。请问类似问题 sympy 或 sage 代码怎么写?
Hlianbobo
2020-09-28 20:21:00 +08:00
@InkStone 我验证了一下 y'=(-3x-4y)/(4x+2y) 但是右边的 y 我想不出来如何消除掉
helloworld000
2020-09-28 21:11:44 +08:00
如果要编程实现的话,求导还是要用 chain rule 做 autograd

你可以参考一下 tensorflow,pytorch 还有 mxnet 这些怎么做的
necomancer
2020-10-04 02:07:39 +08:00
Hlianbobo
2020-10-04 07:15:04 +08:00
@necomancer 谢谢回复。请问这句:c=sum(1/x, x, 1, infinity) 是实现什么功能?
necomancer
2020-10-04 17:19:22 +08:00
Hlianbobo
2020-10-05 08:37:53 +08:00
@necomancer 谢谢回复。这次的代码可以跑了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711145

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX