亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SymPy 的 dsolve 的返回值中的 r() 函數是什么意思?

SymPy 的 dsolve 的返回值中的 r() 函數是什么意思?

慕無忌1623718 2023-03-16 09:32:12
我想評估ODE的解決方案phi(+oo) 在哪里的價值phi(xi)Eq(Derivative(phi(xi), (xi, 2)), (-K + xi**2)*phi(xi))并且K是一個已知的實變量。通過dsolve,我得到了解決方案:Eq(phi(xi), -K*xi**5*r(3)/20 + C2*(K**2*xi**4/24 - K*xi**2/2 + xi**4/12 + 1) + C1*xi*(xi**4/20 + 1) + O(xi**6))r()在右側的第一項中具有未知函數。這是我的代碼:import numpy as npimport matplotlib.pyplot as pltimport sympyfrom sympy import I, pi, oosympy.init_printing()def apply_ics(sol, ics, x, known_params):    """    Apply the initial conditions (ics), given as a dictionary on    the form ics = {y(0): y0, y(x).diff(x).subs(x, 0): yp0, ...},    to the solution of the ODE with independent variable x.    The undetermined integration constants C1, C2, ... are extracted    from the free symbols of the ODE solution, excluding symbols in    the known_params list.    """    free_params = sol.free_symbols - set(known_params)    eqs = [(sol.lhs.diff(x, n) - sol.rhs.diff(x, n)).subs(x, 0).subs(ics)            for n in range(len(ics))]    sol_params = sympy.solve(eqs, free_params)    return sol.subs(sol_params)K = sympy.Symbol('K', positive = True)xi = sympy.Symbol('xi',real = True)phi = sympy.Function('phi')ode = sympy.Eq( phi(xi).diff(xi, 2), (xi**2-K)*phi(xi))ode_sol = sympy.dsolve(ode)ics = { phi(0):1, phi(xi).diff(xi).subs(xi,0): 0}phi_xi_sol = apply_ics(ode_sol, ics, xi, [K])ode_sol解決方案在哪里,phi_xi_sol是應用初始條件后的解決方案。由于r()在 NumPy 中未定義,我無法通過以下方式評估結果for g in [0.9, 0.95, 1, 1.05, 1.2]:    phi_xi = sympy.lambdify(xi, phi_xi_sol.rhs.subs({K:g}), 'numpy')有誰知道這個功能是什么r()意思,我應該如何處理它?
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

從結果的形式可以看出,求解器回退到冪級數解(而不是像 WolframAlpha 那樣根據拋物柱函數搜索解)。


因此,讓我們設置phi(xi)=sum a[k]*xi^k導致系數方程(使用a[k]=0for k<0)


(k+2)(k+1)a[k+2] = -K*a[k] + a[k-2]


a[0] = C2  

a[1] = C1  

a[2] = -K/2*C2

a[3] = -K/6*C1

a[4] = (K^2/2 + 1)/12*C2

a[5] = (K^2/6 + 1)/20*C1

插入功率系列解決方案應該是


C2*(1-K/2*xi**2+(K**2/24+1/12)*xi**4) + C1*xi*(1-K/6*xi**2+(K/120+1/20)*xi**4) + O(xi**6)

與 sympy 解決方案相比,所有包含C1和的術語K都缺失,尤其是缺失的 3 度術語無法解釋。似乎求解過程提前結束,或者某些方程變換沒有正確反轉。


請注意,sympy 中的 ODE 求解器例程是實驗性的和基本的。此外,冪級數解僅給出 的小值的有效信息xi,無法推導出 處極限的任何精確值+oo。


查看完整回答
反對 回復 2023-03-16
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

sol_params是一個包含單個字典的列表。傳遞該字典而不是列表給出了phi_xi_sol沒有的解決方案r(3)

Eq(rho(s), (-K*s**2/2 + s**2*xi**2/2 + 1)*(-6*rho(s) + 6*C2*s - C2*K*s**3 + O(s**5))/
            (3*(K*s**2 - 2)) + C2*(-K*s**3/6 + s**3*xi**2/6 + s) + O(s**5))


查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號