c语言中 1 ind00,一个线性方程组结果为-1.#IND00的问题?

本文介绍了一个使用超松弛迭代法求解线性方程组的程序实例,但遇到了未知错误导致结果出现-1.#IND00的情况。文章探讨了可能的问题所在,并寻求解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include

#include

#define  MAX_N 20

#define  MAXREPT 100

#define  eps 0.00001

int main()

{

int n=8;

int p,q,k;

double err,w=1.5;

static double b[8][8],g[8];

static double x[8],nx[8];

static double a[8][8] =

{

{20,20,1,0,0,0,-1060,-1060},

{352,20,1,0,0,0,-118976,-6760},

{20,318,1,0,0,0,-1060,-16854},

{352,318,1,0,0,0,-122496,-110664},

{0,0,0,20,20,1,-380,-380},

{0,0,0,352,20,1,-6688,-380},

{0,0,0,20,318,1,-6600,-104940},

{0,0,0,352,318,1,-116160,-104940}

};

static double c[8] = {53,338,53,348,19,19,330,330};

for (p=0;p

for (q=0;q

{

b[p][q]=-a[p][q]/a[p][p];

g[p]=c[p]/a[p][p];

}

for (p=0;p

{

for (q=0;q

nx[q]=g[q];

for (q=0;q

{

for (k=0;k

nx[q]+=b[q][k]*nx[k];

for (k=q+1;k

nx[q]+=b[q][k]*x[k];

nx[q]=(1-w)*x[q]+w*nx[q];

}

err=0;

for (q=0;q

if (err

for (q=0;q

x[q]=nx[q];

if (err

{

printf("Solve...x_i=\n");

for (p=0;p

return 0;

}

}

printf("After %d repeat,no result...\n",MAXREPT);

return 1;

}

这是用超松弛迭代法求解线性方程组的解的程序,可是结果却全是-1.#IND00,不知道是哪里出了问题,求高手解答!

-1.#IND00是什么意思?为什么会出现这样的结果,该如何解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值