欧拉方法

2视图(30天)
保罗·杰克逊
保罗·杰克逊 2021年9月23日
评论道: 保罗 2021年9月24日
有人给了我一块半成品的代码,并要求实现欧拉方法来解决它。
我看过无数的例子实现但我认为完成块迷惑我
我有函数myode acc (t, y),应该给我一个具体的解决方案基于t、y
这是我的代码。
dt = 1;
t_values = (0: dt: 500);
numsteps =长度(t_values);
y_initial = (50; 1);
numsteps y_values = 0(2日);
y_values (: 1) = y_initial;
i1 = 2: numsteps;
y_values (:, i1) =
我想要帮助的问题是理解如何利用预先写好的代码,我现在尝试
y_values (:, i1) = y_values (i1) + dt * myode (t_values (i1) y_values (i1))
非常感谢您的帮助。我试着一天来回重写代码,我不做任何的进步。
致以最亲切的问候

接受的答案

杰夫•海斯
杰夫•海斯 2021年9月23日
保罗(亚当?)——我认为所有你错过你的任务
y_values (:, i1) = y_values (i1) + dt * myode (t_values (i1) y_values (i1))
记住, y_values 是一个二维数组。所以你将需要访问两行每列。作业呢
y_values (:, i1) =
所以你需要做同样的(否则的话,你会得到分配错误甚至错误 myode 因为它可能会期待2 x1数组作为第二个输入这个函数。
其次,算法的每一步使用上一次迭代的结果。目前,代码使用 i1 两边的任务。以来的最小值 i1 是2,那么你可以访问的前一个值 i1-1 。试试以下
y_values (:, i1) = y_values (:, i1-1) + dt * myode (t_values (i1-1) y_values (i1-1));
1评论
保罗
保罗 2021年9月24日
应该是:
y_values (:, i1) = y_values (:, i1-1) + dt * myode (t_values (i1-1) y_values (:, i1-1));

登录置评。

更多的答案(0)

类别

找到更多的在创建和连接矩阵帮助中心文件交换

标签

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的