gpt4 book ai didi

Python 用 quad 函数求解二阶 ODE

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:22 25 4
gpt4 key购买 nike

我正在研究阻尼驱动摆的动力学,二阶 ODE 定义为 so ,特别是我正在编程:

d^2y/dt^2 + c * dy/dt + sin(y) = a * cos(wt)

import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate


def pendeq(t,y,a,c,w):
y0 = -c*y[1] - np.sin(y[0]) + a*np.cos(w*t)
y1 = y[1]
z = np.array([y0, y1])
return z

a = 2.1
c = 1e-4
w = 0.666667 # driving angular frequency

t = np.array([0, 5000]) # interval of integration
y = np.array([0, 0]) # initial conditions

yp = integrate.quad(pendeq, t[0], t[1], args=(y,a,c,w))

这个问题看起来确实与 Need help solving a second order non-linear ODE in python 非常相似, 但我收到错误

Supplied function does not return a valid float.

我做错了什么??

最佳答案

integrate.quad 要求提供的函数(pendeq,在您的情况下)仅返回一个 float 。您的函数正在返回一个数组。

关于Python 用 quad 函数求解二阶 ODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com