| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 538 人关注过本帖
标题:[求助]看看这个方程的解问题出在哪
只看楼主 加入收藏
rollingsteel
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-10-13
收藏
 问题点数:0 回复次数:9 
[求助]看看这个方程的解问题出在哪

#include <stdio.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
main()
{
int k=0,i,j,m;
double a[3][3],b[3],x[3][1000],p,p1,p2,p0;
clrscr();
printf("Please input the coefficients :a11..a33 and b1 b2 b3\nWarning:The value of aii can't be zero!\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%lf",&a[i][j]);
}
for(i=0;i<3;i++)
scanf("%lf\n",&b[i]);

printf("Please input the start value of x1[0],x2[0],x3[0]\n");
for(m=0;m<3;m++)
scanf("%lf\n",&x[m][0]);

do
{ x[0][k+1]=(b[0]-a[0][1]*x[1][k]-a[0][2]*x[2][k])/a[0][0];
x[1][k+1]=(b[1]-a[1][0]*x[0][k]-a[1][2]*x[2][k])/a[1][1];
x[2][k+1]=(b[2]-a[2][0]*x[0][k]-a[2][1]*x[1][k])/a[2][2];
p0=x[0][k+1]-x[0][k];
p1=x[1][k+1]-x[1][k];
p2=x[2][k+1]-x[2][k];
if(p0>p1&&p0>p2)
p=p0;
else
p=(p1>p2?p1:p2);k++;
}while (p>0.00001);
printf("x1=%lf\n",x[0][k+1]);
printf("x2=%lf\n",x[1][k+1]);
printf("x3=%lf\n",x[2][k+1]);
printf("The Jaxobi iterative number is:%d\n",k+1);
return 0;
}

说明:本方程是用雅克比迭代法解决三元一次方程的一个小程序。
有几个点可能有点问题: "x[3][1000]" 语言对数组的大小有规定么?
在输入方程组系数6个和b 3个之后本来要求输入初始值3个,但是程序却出现不只6+3+3个数要输入。
高手指教!

搜索更多相关主题的帖子: 方程 解问题 
2007-10-13 19:14
xyffyyin
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-10-13
收藏
得分:0 
呃...前面输入不是6.而是9吧.
2007-10-13 20:11
绿梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-10-13
收藏
得分:0 

真打击俺的自信,唉,俺没有学过

2007-10-13 21:41
炮炮兵
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-9-21
收藏
得分:0 
还没学啊~~~~~~~~~~
2007-10-13 23:54
l670397306
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2007-10-13
收藏
得分:0 
太难了,看不懂呀,不知道什么时候才能把C学好啊

2007-10-14 19:20
zero0c
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-10-12
收藏
得分:0 

确实挺难的

2007-10-14 19:54
moximon
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-8
收藏
得分:0 

考数学的成分多于C的成分....C的部分很容易理解,解释下数学吧,尽量写容易理解些....

a[3][3], b[3], x[3]---->形式是这样:
b[0] = a[0][0]x[1] + a[0][1]x[2] + a[0][3]x[3]
b[1] = a[1][0]x[1] + a[1][1]x[2] + a[1][3]x[3]
b[2] = a[2][0]x[1] + a[2][1]x[2] + a[2][3]x[3]
以上三元一次方程通式....可以看作解线性代数解x1,x2,x3值....
(x0, x1, x2) = (b0, b1, b2) / (a00, a01, a02 ; a10, a11, a12 ; a20, a21, a22)

以前没有接触雅克比迭代法,但猜测是用逼近法....允许X的值离真值有p=0.00001的差距...具体怎样解方程,这是数学问题了....初学者拿这种题目出来(考问?)的不仅仅是C问题了...>______<...做人谦虚点吧


2007-10-14 20:38
moximon
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-8
收藏
得分:0 

多发了...>________<

[此贴子已经被作者于2007-10-14 20:40:33编辑过]

2007-10-14 20:39
烟雨寒风
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-14
收藏
得分:0 

还在学习中````

2007-10-15 09:31
shunfawang
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-28
收藏
得分:0 

有点难
现在还不是很了解

2007-10-15 10:22
快速回复:[求助]看看这个方程的解问题出在哪
数据加载中...
 
   



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

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