微分方程.c
来自「计算方法的几个经典算法」· C语言 代码 · 共 42 行
C
42 行
#include <math.h>
#include<stdio.h>
float f(float x,float y)
{
float z;
z=y-2*x/y;
return z;
}
main()
{
int i,n;
float t0=0,td,y0,t[100],y[100],h,k1,k2,k3,k4;
printf("请输入时间区间td:");
scanf("%f",&td);
printf("请输入y0:");
scanf("%f",&y0);
printf("请输入n:");
scanf("%d",&n);
y[0]=y0;
t[0]=t0;
h=td/n;
for(i=1;i<=n;i++)
{
t[i]=t[i-1]+h;
k1=h*f(t[i-1],y[i-1]);
k2=h*f(t[i-1]+h/2,y[i-1]+k1/2);
k3=h*f(t[i-1]+h/2,y[i-1]+k2/2);
k4=h*f(t[i-1]+h,y[i-1]+k3);
y[i]=y[i-1]+(k1+2*k2+2*k3+k4)/6;
}
printf("该常微分方程在指定时刻得数值解分别为:\n");
for(i=1;i<=n;i++)
{
if((i-1)%5==0) printf("\n");
printf("y[%d]=%4f",i,y[i]);
}
printf("\n");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?