gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:11:02 25 4
gpt4 key购买 nike

我创建了一个函数 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)"。

为什么会显示这个错误?

最佳答案

您在编写 ODE 函数时假装您已经知道 func有什么解决办法x(t),y(t)是。然后你要计算它的近似解。这是完全错误的方法。

右侧的功能仅适用于相空间中的一个点,因此您需要

func=@(t,y) ([y(1)+4*y(2)-exp(t);y(1)+y(2)+2*exp(t)]);

其中输入 y是一个二元向量。

关于matlab - 使用 Matlab 使用欧拉方法求解 ODE 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61335591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com