- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程求解方程组
用c语言编程求线性方程组的解
悬赏分:30 - 解决时间:2009-5-27 23:58
例如 A={1 1}B={1} 求 AX=B的 x的解
1 2 2
在线等
问题补充:
答的对有加分。加分不低于30分哦
提问者: winwyj - 三级
最佳答案
#include stdlib.h
#include math.h
#include stdio.h
int rgauss(n,a,b)
int n;
double a[],b[];
{ int *js,l,k,i,j,is,p,q;
double d,t;
js=malloc(n*sizeof(int));
l=1;
for (k=0;k=n-2;k++)
{ d=0.0;
for (i=k;i=n-1;i++)
for (j=k;j=n-1;j++)
{ t=fabs(a[i*n+j]);
if (td) { d=t; js[k]=j; is=i;}
}
if (d+1.0==1.0) l=0;
else
{ if (js[k]!=k)
for (i=0;i=n-1;i++)
{ p=i*n+k; q=i*n+js[k];
t=a[p]; a[p]=a[q]; a[q]=t;
}
if (is!=k)
{ for (j=k;j=n-1;j++)
{ p=k*n+j; q=is*n+j;
t=a[p]; a[p]=a[q]; a[q]=t;
}
t=b[k]; b[k]=b[is]; b[is]=t;
}
}
if (l==0)
{ free(js); printf(fail\n);
return(0);
}
d=a[k*n+k];
for (j=k+1;j=n-1;j++)
{ p=k*n+j; a[p]=a[p]/d;}
b[k]=b[k]/d;
for (i=k+1;i=n-1;i++)
{ for (j=k+1;j=n-1;j++)
{ p=i*n+j;
a[p]=a[p]-a[i*n+k]*a[k*n+j];
}
b[i]=b[i]-a[i*n+k]*b[k];
}
}
d=a[(n-1)*n+n-1];
if (fabs(d)+1.0==1.0)
{ free(js); printf(fail\n);
return(0);
}
b[n-1]=b[n-1]/d;
for (i=n-2;i=0;i--)
{ t=0.0;
for (j=i+1;j=n-1;j++)
t=t+a[i*n+j]*b[j];
b[i]=b[i]-t;
}
js[n-1]=n-1;
for (k=n-1;k=0;k--)
if (js[k]!=k)
{ t=b[k]; b[k]=b[js[k]]; b[js[k]]=t;}
free(js);
return(1);
}
徐世良老师的.原地工作全选主元的高斯消元.用的符号有点诡异,而且将矩阵以线性表输入的.
我也写过一个,不过估计你不太喜欢用我的,这个用来解b也是矩阵的.
#include stdio.h
#include stdlib.h
#include math.h
void swap(double *a,double *b){
double temp;
temp=*a;
*a=*b;
*b=temp;
}
void printMatrix(int n,int m,double **a){
int i,j;
for (i=0;in;i++){
for (j=0;jm;j++) printf(%e\t,a[i][j]);
printf(\n);
}
}
int rgauss(int n,int m,double **a,double **b){//,double *det){
int *colex,rowex,s,i,j,k;
double d,t;
// *det=1;
s=0;
colex=malloc(n*sizeof(int));
for (k=0;kn;k++){
d=0.0;
for (i=k;in;i++){
for (j=k;jn;j++){
t=fabs(a[i][j]);
if (td){
d=t;
colex[k]=j;
rowex=i;
}
}
}
if (d+1.0==1.0){
free(colex);
printf(Singular Matrix!\n);
return 0;
}
else{
if (colex[k]!=k){
f
您可能关注的文档
- 合肥工业大学2011新流体力学报告.doc
- 零功率定额阻抗及功率R25=50k 10mW B值4050热敏电阻RT表.doc
- CA3140高输入阻抗运放.doc
- Black American Literature终稿.ppt
- 刘欧博士“美国高等教育评估”讲座纪要201003131231_jiangzuo.doc
- Why go to university.doc
- CA3140高输入阻抗运算放大器.doc
- the freedom of the fly.ppt
- SmartRF04EB-FreeBee3420-仿真器使用说明书 - 上传.ppt
- 2013走向高考,贾凤山,高中总复习,英语8-2.doc
文档评论(0)