| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 573 人关注过本帖
标题:原创:求解n次方程组的简单程序
只看楼主 加入收藏
zhglbcheng
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-3-21
收藏
 问题点数:0 回复次数:2 
原创:求解n次方程组的简单程序
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
int i,j,k,m;
float max,sum,y,t;
float q;
const int n=3; // 声明一个常量变量,用来储存数组的长度
float a[n][n+1],x[n];
cout<<"请输入 a[i][j]: ";
for(i=0;i<=n-1;i++)
for(j=0;j<=n;j++)
cin>>a[i][j];
//输出a[i][j]
for(i=0;i<=n-1;i++)
{
for(j=0;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
//把a[i][j]化为上三角矩阵
for(k=0;k<=n-2;k++)
{
for(max=0,i=k;i<=n-1;i++) // 求列主元
if(fabs(a[i][k])>max)
{
max=fabs(a[i][k]);
m=i;
}
if(m!=k) // 交换主元的位置
{
for(j=0;j<=n;j++)
{
t=a[k][j];
a[k][j]=a[m][j];
a[m][j]=t;
}
}
if(a[k][k]!=0) // 消元
{
for(i=k+1;i<=n-1;i++)
{
q=a[i][k];
for(j=k;j<=n;j++)
a[i][j]=a[i][j]-q*(a[k][j]/a[k][k]);
}
}
for(i=0;i<=n-1;i++) // 输出a[i][j]
{
for(j=0;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
// 回代求x的解
for(i=n-1;i>=0;i--)
{
for(j=n,sum=a[i][j];j>i+1;j--)
sum=sum-a[i][j-1]*x[j-1];
x[i]=sum/a[i][i];
}
// 输出上三角矩阵
cout<<"变换后的矩阵为:"<<endl;
for(i=0;i<=n-1;i++)
{
for(j=0;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
// 输出方程的解
cout<<" 方程的解为:"<<"x1 "<<"x2 "<<"......."<<endl;
for(i=0;i<=n-1;i++)
cout<<" "<<x[i];
cout<<endl;
}
搜索更多相关主题的帖子: 方程 求解 
2006-07-19 00:03
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-19 08:30
zhglbcheng
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-3-21
收藏
得分:0 

不好意思,上传错了。这应该是求解 N 个未知数的线性方程组的程序。

2006-07-19 17:54
快速回复:原创:求解n次方程组的简单程序
数据加载中...
 
   



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

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