| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:[求助]数组的用法,龙格_库塔解微分方程组
只看楼主 加入收藏
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
快速回复:[求助]数组的用法,龙格_库塔解微分方程组
数据加载中...
 
   



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

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