선형 다 보 (Adams) 와 예상 교정 법 (개 선 된 오로라 법) 의 비교

13002 단어 알고리즘
선형 다 보 와 예측 교정 법의 비교
  • 문제 설명
  • 두 걸음 의 암시 적 Adams 공식
  • 개 선 된 오로라 공식
  • 오차 단계
  • MATLAB 코드
  • 문제 설명
    상 미분 방정식 을 풀 려 면: {d y d x = x 3 − y x, y (1) = 2 5. \ \ \ \ \ {cases} \ \ \ \ \ dfrac{D} {dx} = x ^ 3 - \ frac {y}} {x} \ \ \ \ \ \ \ \ y (1) = \ \ frac {2} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x ^ 4 + \ frac {1} {5x}. y = 51 x4 + 5x1.
    두 걸음 의 암시 적 Adams 공식
    y n + 1 = y n + h 2 (f (x n + 1, y n + 1) + f (x n, y n, y n). y {n + 1} = y n + 1} = y n + \ \ frac {h} {2} (f (x {n + 1}, y {n + 1} + f (x n, y n). y + 1 = yn + 1 = yn + + + 2 h (f (xn + 1, yn + 1, y + 1) + f (xn + 1, n + f (xn + 1) + f (xn, n + n, yn) + f (x {n + 1}, y n + n + 1). 이 문제 에 대해 서 는 다음 과 같이 쓸 수 있 습 니 다. (1 + h 2, 2 x n + 1 + h 2 (x n + 1 3 + x n 3). (1 + \ frac {h} {2x {n + 1}}) y {n + 1} = (1 - \ frac {h} {2x n})y_n+\frac{h}{2}(x_{n+1}^3+x_n^3). (1+2xn+1​h​)yn+1​=(1−2xn​h​)yn​+2h​(xn+13​+xn3​).
    개 선 된 오로라 공식
    { y n + 1 ∗ = y n + h f ( x n , y n ) , y ( n + 1 ) = y n + h 2 ( f ( x n , y n ) + f ( x n + 1 , y n + 1 ∗ ) ) . \begin{cases} y_{n+1}^{*}=y_n+hf(x_n,y_n),\\ y(n+1)=y_n+\frac{h}{2}(f(x_n,y_n)+f(x_{n+1},y_{n+1}^{*})). \end{cases} {yn+1∗​=yn​+hf(xn​,yn​),y(n+1)=yn​+2h​(f(xn​,yn​)+f(xn+1​,yn+1∗​)).​
    오차 단계
    오차 단계 (l ∞ l \ infty l ∞)
    Adams
    개 선 된 오로라 법
    h=0.1
    2.000274
    1.999845
    h=0.05
    2.000068
    1.999961
    h=0.001
    2.000003
    1.999998
    h=0.0005
    2.000001
    2.000000
    MATLAB 코드
    %  error_order.m  
    clear all,close all,clc
    [error1,error2]=shili(0.005);
    e1=[norm(error1,inf),norm(error2,inf)];
    [error1,error2]=shili(0.0025);
    e2=[norm(error1,inf),norm(error2,inf)];
    format long
    error_order_linf=log2(e1./e2)
    
    %  shili.m  
    %clear all,close all,clc
    function [error1,error2]=shili(h)
    f=@(x,y)x^3-y/x;
    %h=0.1;
    x=[1:h:2];
    N=size(x,2)-1;
    %% Adams
    y1=[2/5,zeros(1,N)];
    for n=1:N
        mid=(1-h/(2*x(n)))*y1(n)+h/2*(x(n+1)^3+x(n)^3);
        y1(n+1)=mid/(1+h/(2*x(n+1)));
    end
    %% Improved Euler method
    y2=[2/5,zeros(1,N)];
    for n=1:N
        y2(n+1)=y2(n)+h*f(x(n),y2(n));
        y2(n+1)=y2(n)+h/2*(f(x(n),y2(n))+f(x(n+1),y2(n+1)));
    end
    y=1/5*x.^4+1./(5*x);  %  Exact solution
    error1=y-y1;
    error2=y-y2;
    end
    
    

    좋은 웹페이지 즐겨찾기