我创建了一个函数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)“。
为什么显示此错误?
func=@(t,y) ([y(1)+4*y(2)-exp(t);y(1)+y(2)+2*exp(t)]);
其中输入y
是两个分量的向量。