如何解决数值计算 sympy dsolve 的解
我想针对某个 x_test
评估微分方程的解
数组
from sympy import *
init_printing()
from __future__ import division
from sympy import *
x,y,z,t = symbols('x y z t')
# Constants
C,R,u_rest = symbols('C R u_rest')
f,g,h = symbols('f g h',cls=Function)
solution = dsolve(C*Derivative(f(x),x) + (1/R)*(f(x) - u_rest ),f(x))
x_text = np.array(range(0,100))
但我失败了
# 1. attempt with evalf(Not working)
solution.args[1].evalf(subs={x: 3.14})
# 2. attempt with lambdify(Not working)
lambdify(x,solution.args[1])(3.14)
正确的做法是什么?
解决方法
如果您查看 solution.args[1]
值,您会发现它是多个变量的表达式,包括 x
。在您为所有变量提供值之前,它不会计算为数字。你的第一次尝试没有失败,但你没有解释为什么它没有给你你所希望的:
>>> solution.args[1].evalf(subs={x: 3.14})
u_rest*(1.0 - exp((C1 - 3.14/R)/C))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。