[数学]midpoint 法
Posted tailiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[数学]midpoint 法相关的知识,希望对你有一定的参考价值。
原理思想
中点法是龙格-库塔方法的二阶的一种形式 了解龙格-库塔的思想和求解:龙格-库塔方法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
',re);
plot(xa,ya);
hold on;
scatter(xa,ya,'b*');
end
Result:
以上是关于[数学]midpoint 法的主要内容,如果未能解决你的问题,请参考以下文章
数学建模MATLAB应用实战系列(八十八)-组合权重法应用案例(附MATLAB和Python代码)
Python代码中的数学之美:用牛顿逼近法计算2的算术平方根