- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想先用微分方程隐式定义形式幂级数的几个系数。
Example.
import sympy as sp
sp.init_printing() # math as latex
from IPython.display import display
z = sp.Symbol('z')
F = sp.Function('F')(z)
F_ = sp.Derivative(F, z)
equation = sp.Eq(F**2 + 1 - F_, 0)
display(equation)
solution = sp.dsolve(equation)
display(solution)
sp.series(sp.tan(z), n = 8)
Question. How to compute formal power series solution of ODE without explicitly solving it in terms of elementary functions?
Sidenote. Some differential equations (even linear) have solutions in divergent power series only, for example an equation
L = z^2 + z^2 L + z^4 L'
. It is interesting to know whethersympy
supports such equations along with usual ones.
当前问题是一个更简单问题的续集。
Sympy: how to solve algebraic equation in formal power series?
最佳答案
更新:已发布类似问题的答案here .我使用第二个答案而不是下面给出的答案。使用 sympy 标准函数的解决方案运行速度非常慢。
这在 sympy-1.1.1
中似乎(部分)可行。请务必先更新到相应的版本。我引用了官方文档关于常微分方程的部分
http://docs.sympy.org/latest/modules/solvers/ode.html
我们可以使用方法 dsolve
和额外的提示,要求将解决方案表示为正式的幂级数。这仅适用于某些类型的方程式。对于上面的等式,我们要求可能的提示类型。
>>> sp.classify_ode(equation)
('separable',
'1st_exact',
'1st_power_series',
'lie_group',
'separable_Integral',
'1st_exact_Integral')
继续问题中的示例,我们指定提示 '1st_power_series'
和初始条件 F(0) = 0
:
solution = sp.dsolve(equation, hint='1st_power_series', ics={F.subs(z,0):0})
display(solution)
Issue 1. If we want more terms, even say
n = 10
, the function works for a very long time (normally, I expect 20 coefficients within several seconds). Combinatorially, one can write a very fast recurrence for linear ODE. I don't know whether it is implemented insympy
.Issue 2. This technique doesn't seem to apply to Ricatti equations like the one mentioned in the original question
L = z^2 + z^2 L + z^4 L'
.
如果有人知道更好的解决方案,热烈欢迎他!
关于sympy - 如何求解形式幂级数的微分方程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427586/
在下面的程序中,SymPy 似乎不理解被积函数是乘积的导数。有没有办法让它返回u*v ? import sympy x = sympy.symbols('x', real=True) u = symp
我有两个单变量函数,f(x)和 g(x) ,我想替换 g(x) = y重写 f(x)正如一些 f2(y) . 这是一个有效的简单示例: In [240]: x = Symbol('x') In [24
我需要以字符串的形式接受用户输入,将其解析为一个 sympy 表达式,然后求解一个变量。大多数用户允许的函数与 sympy 函数匹配,除了 log2(x) 等同于 sympy 的 log(x, 2)。
当 Function 出现在方程中或者是要求解的目标时,sympy 的 solve 函数似乎无法求解某些方程。 为了解决这个问题,我想创建一个通用函数,它会自动用同名的 Symbol 替换表达式中的
尽管 radsimp函数看起来正是我想要的: from sympy import radsimp, sqrt, symbols v1, v2 = symbols('v1 v2') radsimp(1
在动态系统中,我的基值都是时间的函数,d(t)。我使用 d = Function('d')(t) 创建变量 d,其中 t = S('t') 显然,d 的导数(变化率,如速度等)很常见。但是 diff(
我有各种涉及 UndefinedFunction 实例的 SymPy 表达式: f = Function('f') g = Function('g') e = f(x) / g(x) 如何获取出现在此
我试图使用 sympy 解决斐波那契数列的递推关系。我得到了一个与教科书不同的答案。不知道我哪里弄错了。 我的同情码 from sympy import * f=Function('f') var('
我设置了 Anaconda 2.0.0 (Win 64)。 它有 SymPy 0.7.5。 我将 Spyder(Anaconda 附带的 2.3.0rc)配置为使用符号数学: 工具 > 首选项 > i
我是 sympy 的新手,并且正在学习它。我正在浏览堆栈交换中关于使用 sympy 符号求解具有初始条件的微分方程组的文档和问题。 我有一个简单的 ODE-s 系统 ( dV/dt ) = -(
x,i,n = symbols("x i n") summation(x,(i,1,n)) 我如何制作 x由 i 索引? 最佳答案 没有数字上限,它不会做任何事情,但除此之外,您可以使用类似函数的表达
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
我正在尝试在 Jupyter 笔记本中使用 sympy 以可重复的方式记录和执行一系列数学计算。 如果我定义以下内容: from sympy import * init_printing() x, y
当我打字时 >python > from sympy import * > x=symbols('x') > integrate(1/4/sin(1/3*x),x) 输出是 0.375*log(cos
如果我们知道变量满足某个方程,是否可以简化 SymPy 中的表达式?例如,在 Mathematica 中我们可以这样写: Simplify[a+b-c, a+b==c] 当然,在这种情况下可以解决 a
在 sympy 中,如何声明一个对子函数中的多个变量具有多个限制的 Piecewise 函数? 这是我的背景和尝试: from sympy import Piecewise, Symbol, exp
我想使用 sympy 求解以下简单方程 2^(x-y)=1 其中 x 和 y 是 +ve 整数 我的预期结果是 x=y 当我尝试使用 sympy 求解时 x = Symbol('x') y = Sym
我有一个表达式列表,例如 4.0*x[0] + 5.0*x[10] + 1 = 0我想根据 [4.0, 0, 0, ..., 5.0, ... , 1] 等系数将它们转换为向量。原因是我的一些方程可能
当我打字时 >python > from sympy import * > x=symbols('x') > integrate(1/4/sin(1/3*x),x) 输出是 0.375*log(cos
我想对 SU(2) 的一般矩阵进行计算,即我有一个 a,b=symbols('a,b') m=Matrix([[a,b],[-conjugate(b), conjugate(a)]]) 经过一些计算,
我是一名优秀的程序员,十分优秀!