标题:[求助]数组的用法,龙格_库塔解微分方程组
只看楼主
zxbb22
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-16
 问题点数:0 回复次数:3 
[求助]数组的用法,龙格_库塔解微分方程组


#include "stdio.h"
#include "math.h"
#define h 0.01
main()
{int i,j;
FILE *fp;
double t,x[3][100],y,k[3][4],d[3][100];
t=0;
x[1][0]=0;
x[2][0]=0;
x[3][0]=0;
fp=fopen("rkt.txt","w");
for(i=0;i<100;i++)
{
d[1][i]=x[2][i];
d[2][i]=x[3][i];
for(j=1;j<3;j++)
{
k[j][1]=d[j][i];
k[j][2]=d[j][i]+h/2*k[j][1];
k[j][3]=d[j][i]+h/2*k[j][2];
k[j][4]=d[j][i]+h*k[j][3];
x[j][i+1]=x[j][i]+h/6*(k[j][1]+2*k[j][2]+2*k[j][3]+k[j][4]);
}
k[3][1]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t);
k[3][2]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h/2)+h/2*k[3][1];
k[3][3]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h/2)+h/2*k[3][2];
k[3][4]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h)+h*k[3][3];
x[3][i+1]=x[3][i]+h/6*(k[3][1]+2*k[3][2]+2*k[3][3]+k[3][4]);
t=t+h;
// y=(double)800*x[1][i];
fprintf(fp,"%e ",800*x[1][i]);
}
fclose(fp);
}
搜索更多相关主题的帖子: 龙格 方程 解微分 库塔 用法 
2007-09-16 22:36
zxbb22
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-16
得分:0 

那位帮忙看看哪儿有错,尤其是数组的运用上

2007-09-17 18:50
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
数组初始化不能=0,可以a[][4]={0};大括号要加

偶是菜鸟鸟偶惧WHO?!!!!
2007-09-17 19:37
zxbb22
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-16
得分:0 

谢谢,我自己已经解决,不是这为仁兄说的,我初始化的是元素,主要错误是数组定义的太小(比循环时需要的少了一个,循环是从0到2000),所以超出了定义的空间(低级错误别笑话俺),所以建议大家,以后定义数组时,最好比所需的稍大一点。不过还是谢谢上面这位仁兄的回复

[此贴子已经被作者于2007-9-18 9:15:46编辑过]

2007-09-18 09:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170445-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.336348 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved