资源简介
使用龙格库塔法求解二阶微分方程。可以设置仿真步长、初值,轻松更改函数
代码片段和文件信息
#include
#include
int main()
{
double timet[1000]y[1000]z[1000]h;
int y0=0z0=0;
time=10;
t[0]=0;
y[0]=y0;
z[0]=z0;
h=0.01;
functionA(t y z);
functionB(t y z);
RungeKutta(timey0 z0 h *t *y *z (*functionA)(tyz)(*functionB)(tyz));
}
int RungeKutta(double timedouble y0double z0double hdouble *tdouble *ydouble *zdouble (*functionA)(doubledoubledouble)double (*functionB)(doubledoubledouble))
{
double k11k21k12k22k13k23k14k24;
int i;
time=10;//这里设置仿真步长及初值
t[0]=0;
y[0]=y0;
z[0]=z0;
h=0.01;
for(i=0;i<(time/h+1);i++)
{
t[i+1]=t[i]+h;
k11=h*functionA(t[i]y[i]z[i]);
k21=h*functionB(t[i]y[i]z[i]);
评论
共有 条评论