从示例开始,请考虑以下表达式
sage: EX=h/(h-z)
sage: EX
h
─────
h - z
假设我想要逼近h>>z
。这将产生EX ~ 1
的结果。那么,我如何在SageMath上实现这个结果呢?
现在我所能做的只是停下来,并手动重写像
这样的东西# If h>>z
sage: EX_approx=1
有没有办法可以在代码中自动/编程修改这些表达式?请记住,这个简单的例子只是一个示例,我希望能够为任何等式做到这一点。
我尝试过像
这样的事情EX(h>>z)
EX.assume(h>>z)
limit(EX, (h-z)=h)
适用于某些情况的是
limit(EX, z=0)
但这绝对不是一回事,它不适合这样的情况:
sage: EX2=integrate(z^2*exp(EX), z)
sage: EX2
⌠
h ⎮ h
───── ⎮ ─────
⎛ 2 2 3⎞ h - z ⎮ ⎛ 4 3 ⎞ h - z
⎝3⋅h ⋅z + h⋅z - 2⋅z ⎠⋅ℯ ⎮ -⎝3⋅h - h ⋅z⎠⋅ℯ
- ───────────────────────────── - ⎮ ────────────────────── dz
6 ⎮ ⎛ 2 2⎞
⎮ 6⋅⎝h - 2⋅h⋅z + z ⎠
⌡
sage: limit(EX2, z=0)
1/2*h^3*e - 1/6*h^3*limit(integrate(z*e^(h/(h - z))/(h^2 - 2*h*z + z^2), z), z, 0)
答案 0 :(得分:0)
a" small"的某些顺序的近似值参数可以使用taylor
方法获得:
integrate(z^2*exp(EX).taylor(z, 0, 3), z)
返回
1/180*(60*h^3*z^3*e + 45*h^2*z^4*e + 54*h*z^5*e + 65*z^6*e)/h^3