码迷,mamicode.com
首页 > 其他好文 > 详细

[数学]midpoint 法

时间:2020-02-03 13:35:22      阅读:373      评论:0      收藏:0      [点我收藏+]

标签:eth   公式   ref   result   了解   mat   class   play   poi   

原理思想

中点法是龙格-库塔方法的二阶的一种形式 了解龙格-库塔的思想和求解:龙格-库塔方法RK.

公式

\[k1 = f(x_i,y_i)\]
\[k2 = f(x_i+0.5h,y_i+0.5h)\]
\[y_{i+1} = y_i+hk2\]

MATLAB 代码

fun = @(x,y) (x+y);
myans = midpoint_method(fun,0,2,1,0.25);
hold on;

% 准确值
xx = 0:0.25:1;
yy = 3*exp(xx)-xx-1;
plot(xx,yy,'r');

legend('近似值','point','准确值');
% midpoint 
function re = midpoint_method(f,x0,y0,xn,h)
    n = round((xn-x0)/h);
    k1 = f(x0,y0);
    x =x0;
    y = y0;
    xx = [];
    yy = [];
    
    xa(1)=x0;
    ya(1)=y0;
    for i=1:n
        k2 = f(x+h/2,y+(h/2)*k1);
        y = y+h*k2;
        x = x0+h*i;
        k1 = f(x,y);
        xa(i+1) = x;
        ya(i+1) = y;
    end
    re = y;
    fprintf('%f\n',re);
    plot(xa,ya);
    hold on;
    scatter(xa,ya,'b*');
    
end

Result:
技术图片
技术图片

[数学]midpoint 法

标签:eth   公式   ref   result   了解   mat   class   play   poi   

原文地址:https://www.cnblogs.com/tailiang/p/12255210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!