我正在使用scipy.optimize.f解决方案在Fourier伪谱空间中求解一个非线性方程,但它不起作用。它提供与输入u0相同的输出。我要解决的方程是:
代码如下。有人能帮我吗?你知道吗
import numpy as np
import scipy.optimize
M = 16
nu = 0.4
def kssol(M):
kkx = np.fft.fftfreq(2*M)*2.*M
kx = kkx[0:M+1]
def func(vec):
linspec = -(kx**2)+(nu*(kx**4))
lin = linspec*np.fft.rfft(vec)
nlin = np.zeros_like(lin)
nlinre = vec*vec
nlin = 0.5*1j*kx*np.fft.rfft(nlinre)
sol = lin+nlin
rhs = np.zeros_like(sol, dtype='complex')
sol -= rhs
return np.fft.irfft(sol)
u0 = np.zeros((2.*M,))
u = scipy.optimize.fsolve(func, u0)
return u
目前没有回答
相关问题 更多 >
编程相关推荐