四阶龙格-库塔法.txt
来自「数值计算方法所用的上机实验C++源程序,个人所编.」· 文本 代码 · 共 36 行
TXT
36 行
#include <stdio.h>
float func(float x,float y)
{ return(x-y);
}
float runge_kutta(float x0,float xn,float y0,int N)
{ float x,y,y1,y2,h,xh;
float d1,d2,d3,d4;
int i;
x=x0;
y=y0;
h=(xn-x0)/(float)N; /* 计算步长 */
for(i=1;i<=N;i++) /* 标准四阶龙格-库塔公式 */
{ xh=x+h/2;
d1=func(x,y);
d2=func(xh,y+h*d1/2.0);
d3=func(xh,y+h*d2/2.0);
d4=func(xh,y+h*d3);
y=y+h*(d1+2*d2+2*d3+d4)/6.0;
x=x0+i*h; }
return(y);
}
main()
{ float x0,xn,y0,e;
int N;
clrscr();
printf("\ninput n:\n "); /* 输入区间等分数 */
scanf("%d",&N);
printf("input x0,xn:\n "); /* 输入x的区间 */
scanf("%f%f",&x0,&xn);
printf("input y0:\n "); /* 输入x0处的y的值 */
scanf("%f",&y0);
e=runge_kutta(x0,xn,y0,N);
printf("y(%f)=%8.6f",y0,e);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?