中点的方法,ODE2 |在MATLAB求解常微分方程
从系列:在MATLAB求解常微分方程
ODE2实现中点的方法有两个函数评估每一步。该方法是准确的是欧拉方法的两倍。一个非线性方程定义正弦函数提供了一个示例。一个练习是实现一个梯形方法有关。
的成本解决常微分方程的数值方法是衡量它的次数每一步评估函数f。一旦每一步欧拉方法计算f。这是一种新方法评估两次每一步。如果f是评估一次初的步骤给斜坡s1,然后s1用于欧拉一步跨间隔一半,函数是评价中间的间隔给斜率s2。然后s2迈出的一步。很明显,这就是所谓的中点的方法。
这是ode2。它实现了中点的方法,评估函数两次每一步。ode1是一样的结构。相同的参数,相同的for循环,但是现在我们有了s1的一步,s2中间的步骤,然后一步实际上是用s2。
这里有一个例子涉及一个三角函数。Dy dt是- 1的平方根,- y的平方。从原点开始的时间间隔从0到π/ 2。现在,因为我称之为一个三角的例子,你可能会——这是一个可分离变量方程进行积分,或者你可以猜测,猜测答案是正弦t。因为正弦t是余弦函数的导数(t)和的平方根1 - y的平方。
让我们设置它。F是匿名函数√1 - y的平方。T0是0。我要把hπ/ 32。和tfinalπ/ 2。和y0是0。ode2这里是我的电话,这五个参数,它会产生该输出。
现在我想把它。让我们得到t去。有t值作为一个列向量,情节。和做一些注释的阴谋。这是我们的阴谋。所以我们的图,有图的正弦t, ode2生成的点。
现在我忍不住去看看这些答案。这应该是sin t的值。这应该是1在π/ 2。我们有0.997。给你一个粗略的什么样的准确性我们走出这个粗糙的数值方法。
让我们看一看一个动画中点的方法。微分方程是2 y y ',在t0 = 0开始步长为1,3,和从y0 = 10,使用ode2。这是动画。这是t0, y0。评价函数在y0。2乘以y0是20,一步一半在区间的坡度,让我们20。评估函数,斜率是40岁,所以我们一步斜率40一路穿过间隔50。
这是第一步。现在我们要重新调节情节窗口。我们到50。评估函数。斜率是100,一步一半斜坡,到达间隔的中间,评估函数。斜率是200,所以我们一步坡200 250。这是第二步。重新调节情节窗口。评估函数。斜率是500。 Take that step halfway across the interval, evaluate the slope there. The slope is 1,000, so we take a step with slope of 1,000 to get up to 1,250 as our final value.
由于这是一个迅速增加y的函数,与中点的方法我们生成的值远远大于采用欧拉方法生成的值,我们看到ode1。
这是一个锻炼。修改ode2创建ode2t,实现了同伴的方法,梯形法。评价函数在区间的开始s1。使用s1划过了区间。评价函数的右端点区间s2。然后,使用的平均值s1和s2的一步。梯形法。
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。