需要采用数值和欧拉函数的帮助

126(30天)
克里斯
克里斯 2013年11月5日
回答: 乔纳森·勒 2013年11月5日
所以我歌唱我解决它采用数值,现在要求我修改脚本脚本,用欧拉方法给我们,现在使用欧拉求解。我迷路了。如果其confusinf的话请让我知道,我可以尝试澄清。
这是我的ODE文件
函数ex_with_2eqs
t0 = 0;tf = 40;y0 = (1, 0);
[t、Y] =数值(@f t0, tf, y0, []);
y = y (: 1);
v = Y (:, 2);
图(1);
情节(t y“b +”t v,“罗”)
传奇(“y (t)”,v (t) = y”(t)”);
标题(“图1 L4g”);
网格;
ylim ([-1.5, 1.5]);
图(2);
情节(y, v);轴广场;包含(“y”);ylabel (“v”);
标题(“图2 L4g阶段情节”);
网格;
ylim ([-1.5, 1.5]);
xlim ([1]);
结束
这是我的函数文件
函数dydt = f (t, Y)
y = y (1);
v = Y (2);
dydt = [v;cost 4 * y ^ 2 *对3 * y];
结束
如果它很重要这是我欧拉文件虽然我知道我不需要做任何事。
f
涂油礼(te,你们)=欧拉(f, tspan, y0, N)
%解决IVP y = f (t、y), y (t0) = y0 tspan = (t0, tf)的时间间隔
%用欧拉法(N)的时间步骤。
%的输入:
% f =内联函数或函数的名称m文件评估ODE
%(如果不是一个内联函数,使用:欧拉(@f tspan, y0, N))
%为一个系统,必须给出f列向量。
% tspan = (t0, tf)在t0 =初始时间价值和tf =最后的时间价值
% y0 =因变量的初始值。如果解决一个系统,
%初始条件必须作为一个向量。
% N =数量的步骤使用。
%输出:
% t =向量计算时间值的解决方案
% y =向量计算解决方案的价值。
m =长度(y0);
t0 = tspan (1);
tf = tspan (2);
h = (tf-t0) / N;%计算时间步长
t = linspace (t0、tf、N + 1);%建立t值的向量
y = 0 (m, N + 1);输出y %分配内存
y (: 1) = y0 ';%设置初始条件
n = 1: n
y (:, n + 1) = y (:, n) + h * f (t (n), y (:, n));%实现欧拉方法
结束
t = t ';y = y ';% t、y从行更改为列向量
结束

答案(1)

乔纳森·勒
乔纳森·勒 2013年11月5日
在我看起来,你就要成功了!我发现几个小错误似乎是阻碍你。
修改代码:
  • 取代数值定义了你欧拉函数
  • 阅读你的文档欧拉函数。不像数值一个变量一步数值解算器,欧拉方法是求解一个固定的一步。这样,你需要指定你想要采取的步骤的数量,N,作为最终的功能输入。我能想象250 +步骤关于这个问题就足够了。
改变你的 欧拉 功能:
  • 这两个函数的输出(te,你们)从来没有在代码中定义的。据我所知,应该改变输出(t、y)。
希望这有助于纠正这个问题!

社区寻宝

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

开始狩猎!