2019年5月12日 星期日

C語言 例題5-4 利用 二階 Runge-Jutta Method 求ODE y'=-y+x+1 y(0)=1 , 0<= t <=1 取 h=0.2

C語言 例題5-4 利用 二階 Runge-Jutta Method   求ODE y'=-y+x+1  y(0)=1 , 0<= t <=1   取 h=0.2

/***********************************************
****EULER METHOD FOR DIFFERENTIAL EQUATIONS*****
* C語言 例題5-4 利用 二階 Runge-Jutta Method
* 求ODE y'=-y+x+1  y(0)=1 , 0<= t <=1
* 取 h=0.2
*
***********************************************/
#include<stdio.h>
#include<math.h>

float fxy(float x, float y)
{
    return -y+x+1;
}

int main()
{
    float x0,y0,x1,y1,xn,h,k1,k2;
    int ns,i;
    x0=0;
    xn=1;
    y0=1;
    ns=5;
    h=(xn-x0)/ns;
    for(i=0;i<ns;i++)
    {
        k1=h*fxy(x0,y0);
        y1=y0+k1;
        x1=x0+h;
        k2=h*fxy(x1,y1);
        y1=y0+(k1+k2)/2;
        printf("i=%d y(%0.2lf)=%0.5lf\n",i,x1,y1);
        y0=y1;
        x0=x1;
    }
    return 0;
}


輸出畫面
i=0 y(0.20)=1.02000
i=1 y(0.40)=1.07240
i=2 y(0.60)=1.15137
i=3 y(0.80)=1.25212
i=4 y(1.00)=1.37074

沒有留言:

張貼留言

2024產專班 作業2 (純模擬)

2024產專班 作業2  (純模擬) 1) LED ON,OFF,TIMER,FLASH 模擬 (switch 控制) 2)RFID卡號模擬 (buttom  模擬RFID UID(不從ESP32) Node-Red 程式 [{"id":"d8886...