使用Matlab使用欧拉方法求解ODE系统

问题描述 投票:1回答:1

我创建了一个函数Euler.m,以使用Euler方法求解ODE系统。我希望使用此函数来解决由匿名函数func=@(t) ([x(t)+4*y(t)-exp(t);x(t)+y(t)+2*exp(t)])定义的ODE系统,其初始条件由y0给出。

func=@(t) ([x(t)+4*y(t)-exp(t);x(t)+y(t)+2*exp(t)]);
y0=[4;5/4];
y_exact=@(t) [4*exp(3*t)+2*exp(-t)-2*exp(t);2*exp(3*t)-exp(-t)+exp(t)/4]; %exact solution of ODEs
a=0; % such that 
b=1; % a<t<b
N=120;
[t,y] = Euler(func,a,b,y0,N)

但是,显示以下错误:

“使用解决方案时出错> @(t)([x(t)+ 4 * y(t)-exp(t); x(t)+ y(t)+ 2 * exp(t)])输入参数过多。

解决方案错误(第7行)[t,y] = Euler(func,a,b,y0,N)“。

为什么显示此错误?

matlab ode
1个回答
1
投票
func=@(t,y) ([y(1)+4*y(2)-exp(t);y(1)+y(2)+2*exp(t)]);

其中输入y是两个分量的向量。

© www.soinside.com 2019 - 2024. All rights reserved.