matlab编程问题利用欧拉方法求常微分方程近似数值解取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:计算到y(2)并于精确解比较.求本题完整matlab程序.

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 13:59:25
matlab编程问题利用欧拉方法求常微分方程近似数值解取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:计算到y(2)并于精确解比较.求本题完整matlab程序.matlab编程问

matlab编程问题利用欧拉方法求常微分方程近似数值解取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:计算到y(2)并于精确解比较.求本题完整matlab程序.
matlab编程问题利用欧拉方法求常微分方程近似数值解
取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:
计算到y

(2)并于精确解

比较

.

求本题完整matlab程序.

matlab编程问题利用欧拉方法求常微分方程近似数值解取h=0.1,0.05,0.01,用欧拉显式方法求解一阶线性微分方程:计算到y(2)并于精确解比较.求本题完整matlab程序.
%欧拉法解一阶常微分方程
% y'=xy^(1/3)

f = inline('x*y^(1/3)','x','y');
figure; hold on;
for h = [0.1 0.05 0.01]       %三个步长
    xleft = 1;     %区域的左边界
    xright = 5;     %区域的右边界
    xx = xleft:h:xright;   %一系列离散的点
    n = length(xx);    %点的个数

    y0 = 1;
    Euler = y0;
    for i = 2:n
     Euler(i)=Euler(i-1)+h*f(xx(i-1),Euler(i-1));
    end
    plot(xx,Euler,'LineWidth',2);
end

%精确解
y = ((xx.^2+2)/3).^(3/2);
plot(xx,y,'r','LineWidth',2);
grid on;