#include"stdio.h"
#include"malloc.h"
#include"math.h"
#include"string.h"
main(){
int i,j,n;
printf("请输入需计算中心差分阶数:");
scanf("%d",&j);
while (j==0||j%2==1){
printf("中心差分阶数不可为0或奇数\n请重新输入:");
scanf("%d",&j);
}
i=j/2;
n=j+1;
float a;//为系数矩阵分配空间
a=(float)malloc(n*sizeof(float*));
a[0]=(float*)malloc(n*n*sizeof(float));
int c,d,e,h;
for(c=1;c
a[c]=a[0]+n*c;
}
float *b;//为常数分配空间
b=(float*)malloc(n*sizeof(float));
float *g;//为权系数分配空间
g=(float*)malloc(n*sizeof(float));
memset(g,0,n*sizeof(float));
e=1;
float f;
for(c=0;c
for(d=0;d
if(c==0){
a[d][c]=1.0;
}
else{
h=d-i;
a[d][c]=pow(h,c);
f=(float)e;
a[d][c]=a[d][c]/e;
}
}
e=e*(c+1);
}
for(c=0;c
if(c==1)
b[c]=1.0;
else
b[c]=0.0;
}
for(c=0;c
for(d=c+1;d
if(a[c][c]==0){
for(e=c;e
f=a[e][c];
a[e][c]=a[e][d];
a[e][d]=f;
}
f=b[c];
b[c]=b[d];
b[d]=f;
}
if(a[c][c]!=0)
break;
}
for(d=c+1;d
a[d][c]/=a[c][c];
b[c]/=a[c][c];
a[c][c]=1;
}
for(d=c+1;d
for(e=c;e
a[e][d]=a[e][d]-a[c][d]*a[e][c];
}
b[d]=b[d]-a[c][d]*b[c];
}
}//
for(c=n-1;c>=0;c--){//计算权系数的值
g[c]=b[c];
if(c>0)
b[c-1]=b[c-1]-a[c][c-1]*g[c];
}
for(c=0;c<n;c++){//打印权系数的值
d=c-i;
printf("w%d=%f(1/dx)\n",d,g[c]);
}
free(a[0]);
free(a);
free(b);
free(g);
}
求泰勒公式展开的有限差分中心差分算子的权系数,我的这个程序写出来所有结果都为-nan,求大神解答,急
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2015-05-04 10:48关注
-nan就是负的无穷大,检查下公式用得对不对,除数是否接近0。还有整数不能作为除数、乘数,需要先转换成浮点。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
- ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
- ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
- ¥20 腾讯企业邮箱邮件可以恢复么
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能