m0_58956357 2021-06-25 17:15 采纳率: 100%
浏览 101
已采纳

编制matlab程序,R-K公式求解初值问题,matlab编程

分别用2阶和3阶R-K公式求解初值问题(步长h=0.05)

  • 写回答

1条回答 默认 最新

  • CSDN专家-Matlab_Fans 2021-06-25 19:42
    关注
    dfun = @(x,y) cos(x)*sqrt(y);
    h = 0.05;
    
    h = 0.05;
    X = 1.2:h:2.05;
    %% RK2
    x = 1.2; % 初始值
    y = 3.2; 
    for ii = 1:length(X)
       x = X(ii); 
       k1 = dfun(x,y);
       k2 = dfun(x+h,y+h*k1);
       y = y + h*(k1+k2)/2;
       Y1(ii) = y;
    end
    
    %% RK3
    x = 1.2; % 初始值
    y = 3.2; 
    for ii = 1:length(X)
       x = X(ii); 
       k1 = dfun(x,y);
       k2 = dfun(x+h/2,y+h*k1/2);
       k3 = dfun(x+h,y+h*(2*k2-k1)/2);
       y = y + h*(k1+4*k2+k3)/6;
       Y2(ii) = y;
    end
    
    figure
    plot(X,Y1,X,Y2,'r--')
    legend('RK2','RK3')
    ylabel('y')
    xlabel('x')

    结果

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?