我是靠谱客的博主 坦率饼干,这篇文章主要介绍matlab中矩阵积分,MATLAB的ode15如何处理包含值矩阵的方程的积分?,现在分享给大家,希望可以做个参考。

我正在将MATLAB代码翻译成Python,但是在担心翻译之前,我想了解一下MATLAB,特别是它的ODE15s解算器是如何解释一个方程的。在

我有一个在主脚本中调用的函数脚本,该函数脚本包含以下等式:function testFun=testFunction(t,f,dmat,releasevec)

testFun=(dmat*f)+(releasevec.');

在testFunction中,t表示时间,f表示我要求解的值,dmat表示我想知道的常数矩阵,并将vec释放到一个附加常数的向量。在

主脚本中的ODE15s解算器通过以下几行发挥其魔力:

^{pr2}$

fresults最初是一个包含f结果的零表。这些选项调用odeset以获取“非负”值。上面的d值矩阵是一个6x6矩阵。我已经计算了所有的d值和释放值。我的问题是:ODE15如何与测试函数方程中给定的6x6矩阵进行积分?我试图用手来解决这个问题,但没有成功。任何帮助都将不胜感激!!在

#

def func(y, t, params):

f = 5.75e-16

f = y

dmat, rvec = params

derivs = [(dmat*f)+rvec]

return derivs

# Parameters

dmat = np.array([[-1964977.10876756, 58831.976165, 39221.31744333, 1866923.81515922, 0.0, 0.0],

[58831.976165, -1.89800738e+09, 0.0, 1234.12447489, 21088.06180415, 14058.70786944],

[39221.31744333, 0.84352331, -7.59182852e+09, 0.0, 0.0, 0.0],

[1866923.81515922, 0.0, 0.0, -9.30598884e+08, 0.0, 0.0],

[0.0, 21088.10183616, 0.0, 0.0, -1.15427010e+09, 0.0],

[0.0, 0.0, 14058.73455744, 0.0, 0.0, -5.98519566e+09]], np.float)

new_d = np.ndarray.flatten(dmat)

rvec = np.array([[0.0], [0.0], [0.0], [0.0], [0.0], [0.0]])

f = 5.75e-16

# Initial conditions for ODE

y0 = f

# Parameters for ODE

params = [dmat, rvec]

# Times

tStop = 2.0

tStart = 0.0

tStep = 1.0

t = np.arange(tStart, tStop, tStep)

# Call the ODE Solver

soln = odeint(func, y0, t, args=(params,))

#y = odeint(lambda y, t: func(y,t,params), y0, t)

最后

以上就是坦率饼干最近收集整理的关于matlab中矩阵积分,MATLAB的ode15如何处理包含值矩阵的方程的积分?的全部内容,更多相关matlab中矩阵积分,MATLAB内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部