Guass消元法求解线性方程组
来源:互联网 发布:linux怎么退出vim编辑 编辑:程序博客网 时间:2024/05/22 06:38
/*高斯消元法求解线性方程组
高斯消元的消元计算:
(k) (k)
Mik = Aik / Akk (i = k+1,k+2,,.....,n)
(k+1) (k) (k)
Aij = Aij - MikAkj (i,j= k+1,k+2,.....,n)
(k+1) (k) (k)
Bi = Bi - MikBk (i = k+1,k+2,.....,n)
回代求解:
(n) (n)
Xn = Bn / Ann
(i) (i)
Xi = (Bi - )/Aii
(i = n-1,n-2,....,1)
使用高斯消元法求解线性方程组比用Cramer求解的计算量要小的多。
*/
/*函数名称:gauss_elimination_calculate
函数参数:int (*p)[3];线性方程组的系数行列式
int* B;线性方程组右边的常数向量
int size;线性方程组的阶数
函数返回值:函数没有返回值,输出方程组的求解结果
*/
void gauss_elimination_calculate(double (*a)[3], double* ipvt, int size)
{
double *X = new double[size];
//消元,是系数矩阵成为上三角矩阵
double mi = 1.0;
int k = 0;
for(int i = 1; i < size; i++)
{
for(int j = 0; j < i; j++)
{
mi = a[i][j]/a[j][j];
k = j;
while(k < size)
{
a[i][k] = a[i][k] - mi * a[j][k];
k ++;
}
ipvt[i] = ipvt[i] - ipvt[j] * mi;
}
}
//回代,求解线性方程组的结果
X[size - 1] = ipvt[size - 1]/a[size - 1][size - 1];
for(int i = size - 2; i >= 0; i--)
{
double temp = ipvt[i] - X[i + 1] * a[i][i + 1];
for(int j = i + 2; j < size; j++)
temp = temp - X[j] * a[i][j];
X[i] = temp/a[i][i];
}
for(int i = 0; i < size; i++)
std::cout << X[i] << " ";
std::cout << '\n';
delete[] X;
}
- Guass消元法求解线性方程组
- Guass消元法和Guass列主元素消元法解线性方程组
- 列选主元Guass消元法求解方程组+c语言
- 基于matlab的Guass-Seidel(高斯--赛德尔) 迭代法求解线性方程组
- 求解线性方程组
- 线性方程组求解
- 求解线性方程组
- gauss消元法求解线性方程组(举例子)
- Matlab线性方程组求解
- 求解线性方程组--追赶法
- 求解线性方程组--Jacobi迭代法
- 龙贝格法求解线性方程组(c++)
- 求解非齐次线性方程组算法
- 线性方程组求解库
- 求解线性方程组----Matlab
- matlab求解线性方程组
- 用matlab求解线性方程组
- 线性方程组求解库
- 数据库皮毛深究
- android链接服务器
- C语言位域结构
- 优化网站结构这类分类越细越好
- WordPress主题模板下载网站收集整理
- Guass消元法求解线性方程组
- seo中论理构造优化的一些底细综合
- c#字符相似度对比通用类
- Cramer法则求解线性方程组
- 如何提高网站权重?
- T-SQL查询库、表、列数据结构信息汇总
- crossdomain.xml的配置详解
- Android 程序自启动
- 第一个汇编程序