📄 经典4阶r-k法.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -