经典4阶r-k法.c
来自「经典4阶R-K法(可以计算运行时间)」· C语言 代码 · 共 40 行
C
40 行
#include<stdio.h>
#include<math.h>
#include<time.h>
double f(double x,double y)
{
double z;
z=-y+cos(2*x)-2*sin(2*x)+2*x*exp(-x);
return(z);
}
main()
{
double a,b;
double h;
double x,y;
double k[4];
clock_t begin,end; //定义计时的始末时刻
double t; //记录运行时间
printf("请输入求解区间(a,b):\n");
scanf("%lf,%lf",&a,&b);
printf("请输入步长h:\n");
scanf("%lf",&h);
printf("请输入初值(x_0,y_0):\n");
scanf("%lf,%lf",&x,&y);
begin=clock(); //开始计时
for(;x<b;) //经典4阶R-K法
{
k[0]=h*f(x,y);
k[1]=h*f(x+h/2,y+k[0]/2);
k[2]=h*f(x+h/2,y+k[1]/2);
k[3]=h*f(x+h,y+k[2]);
y=y+(k[0]+2*k[1]+2*k[2]+k[3])/6;
x=x+h;
printf("y(%lf)=%.15lf\n",x,y);
}
end=clock(); //停止计时
t=end-begin; //运行时间
printf("运行时间为%.15lf",t);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?