2019年5月12日 星期日

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

C語言 例題5-4 利用 二階 Runge-Kutta 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 f(float x, float y)
{
    return -y+x+1;
}

int main()
{
    int n,i;
    float x,xf,y,h,s,s1,s2;
    x=0;
    xf=1.0;
    h=0.2;
    y=1.0;
 
    printf("%d. y(%0.2lf)=%2.6lf\n",0,x,y);
    i=1;
    while(x<xf)
    {
        s1=f(x,y);
        s2=f(x+h,y+h*s1);
        s=(s1+s2)/2;
        y=y+(h*s);
     
        printf("%d. y(%0.2lf)=%2.6lf\n",i,x+h,y);
        x=x+h;
        i++;
    }
return 0;
}

輸出畫面
0. y(0.00)=1.000000
1. y(0.20)=1.020000
2. y(0.40)=1.072400
3. y(0.60)=1.151368
4. y(0.80)=1.252122
5. y(1.00)=1.370740

沒有留言:

張貼留言

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

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