欧拉方法
2视图(30天)
显示旧的评论
有人给了我一块半成品的代码,并要求实现欧拉方法来解决它。
我看过无数的例子实现但我认为完成块迷惑我
我有函数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))
非常感谢您的帮助。我试着一天来回重写代码,我不做任何的进步。
致以最亲切的问候
0评论
接受的答案
杰夫•海斯
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));