【问题标题】:scikits.bvp_solver generates ValueError: too many values to unpackscikits.bvp_solver 生成 ValueError: too many values to unpack
【发布时间】:2015-07-02 21:13:05
【问题描述】:

我将从一个非常简单的 ODE 开始,它使用 scikits.bvp_solver 生成与我应用于复杂 ODE 相同的错误代码。下面是 ODE 和边界条件:

f''''(x)=f(x), f(0)=0, f'(1)=1, f''(0)=1, f'''(1)=1

求解这个 ODE 的代码:

import numpy
import scikits.bvp_solver as bvp
def Fode(x,y):
    return numpy.array([y[1],y[2],y[3],y[0]])
def Fbc(ya,yb):
    return (numpy.array([ya[0]]),numpy.array([yb[1]-1]),
            numpy.array([ya[2]-1]),numpy.array([yb[3]-1]))
guess=numpy.array([0.0,0.0,0.0,0.0])

problem=bvp.ProblemDefinition (num_ODE=4,num_parameters=0,
                               num_left_boundary_conditions=2,
                               boundary_points=(0,1),
                               function=Fode,boundary_conditions=Fbc)
solution=bvp.solve(bvp_problem=problem,solution_guess=guess)

当我运行这段代码时,我收到:

我不知道是什么问题,因为相同的代码适用于二阶 ODE。任何意见表示赞赏。

【问题讨论】:

  • 请给出完整的回溯(即完整的错误信息),以便我们知道是哪一行产生了错误。
  • @WarrenWeckesser,给你。

标签: python-2.7 scipy scikits


【解决方案1】:

您的 Fbc 函数应准确返回两个数组,一个包含左侧边界条件的函数值差异,另一个包含右侧的值。

https://pythonhosted.org/scikits.bvp_solver/tutorial.html#defining-the-problem

https://pythonhosted.org/scikits.bvp_solver/examples/examples.example4.html

【讨论】:

  • 感谢您的帮助。我认为 bvp_solver 的格式与 matlab bvp4c 的格式几乎相同。
猜你喜欢
  • 2019-02-01
  • 1970-01-01
  • 2019-01-19
  • 2014-03-31
  • 2020-09-23
  • 2016-11-05
  • 1970-01-01
  • 2019-09-11
  • 2020-04-01
相关资源
最近更新 更多