在MATLAB中编写lambda



我正在尝试将此代码转换为MATLAB,但我不确定如何执行下标(Y[i] = Y[i-1](以及funcf_exact变量代码在这里:

def Forward_Euler(y0,t0,T,dt,f):
t = np.arange(t0,T+dt,dt)
Y = np.zeros(len(t))
Y[0] = y0
for i in range(1,len(t)):
Y[i] = Y[i-1]+dt*f(Y[i-1], t[i-1])
return Y, t

func = lambda y,t: y-t
f_exact = lambda t: t+1-1/2*np.exp(t)

您可以在matlab中使用匿名函数:

func = @(y,t)(y - t)
f_exact = @(t)(t + 1 - exp(t)/2) % it works with any matrix t as well

您也可以使用for矩阵(它们应该保留矩阵运算规则(。例如,在func函数中,由于函数形式中有一个减号,因此yt的维数必须相同。

相关内容

  • 没有找到相关文章

最新更新