c语言报告 列主元lu分解,列主元LU分解法 C++程序
// 本程序用来解四维线性方程组。当然,将在最开始将N换成其他数字、系数矩阵和右侧矩阵换掉即可解更多维的线性方程组
//在运行本程序前,一定要确保方程组有解(通过线性代数里学的知识加以判断)
#include
#include
#include
#define N 4
//作函数声明:
void DirectLU(double a[N][N+1],double []);
//定义函数作LU分解并求得最终解
void swap(double &,double &);
//交换函数,用来交换两个元素
int main()
{
double x[N];
int i,j;
double a[N][N+1]={
1,-1,2,-1,-8,
2,-2,3,-3,-20,
1,1,1,0,-2,
1,-1,4,3,4
}; //输入系数矩阵和右侧矩阵y放在一个二维数组里面
cout<
for(i=0;i
for(j=0;j
cout<
cout<
}
cout<
for(i=0;i
cout<
cout<
cout<
DirectLU(a,x); //调用LU分解函数
cout<
for(i=0;i
for(j=0;j
cout<
cout<
}
cout<
为: \n";
for(i=0;i
cout<
cout<
cout<
cout<
for(i=0;i
cout<
"<
cout<
return 0;
}
void swap(double &a,double &b)
//交换函数
{
a=a+b;
b=a-b;
a=a-b;
}
void DirectLU(double a[N][N+1],double x[]) //列主元LU分解函数
{
int i,r,k,j;
double s[N],t[N];//={-20,8,14,-0.8};
double max;
for(r=0;r
{
max=0;
j=r;
for(i=r;i
{
s[i]=a[i][r];
for(k=0;k
s[i]-=a[i][k]*a[k][r];
s[i]=s[i]>0?s[i]:-s[i]; //s[i]取绝对值
if(s[i]>max){
j=i;
max=s[i];
}
}
if(j!=r) //选出的主元所在行j若不是r,则对两行相应元素进行调换
{
for(i=0;i
swap(a[r][i],a[j][i]);
}
for(i=r;i
for(k=0;k
a[r][i]-=a[r][k]*a[k][i];
}
for(i=r+1;i
//记算第r列的元素
{
for(k=0;k
a[i][r]-=a[i][k]*a[k][r];
a[i][r]/=a[r][r];
}
}
for(i=0;i
t[i]=a[i][N];
for(i=N-1;i>=0;i--) //利用回代法求最终解
{
for(r=N-1;r>i;r--)
t[i]-=a[i][r]*x[r];
x[i]=t[i]/a[i][i];
}
}
c语言报告 列主元lu分解,列主元LU分解法 C++程序相关推荐
- 怎样用matlab做矩阵的LU分解,矩阵LU分解程序实现(Matlab)
n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...
- 矩阵的LU分解,LU分解的推广,LU分解有什么意义,为什么要用LU分解。
一点点数学!开干! 参考书籍:<矩阵分析与计算>李继根 张新发编著 矩阵的LU分解: LU分解定理:如果n阶方阵A的各阶顺序主子式≠0(K=1.2.3,-,n),即A的各阶顺序主子式矩阵都 ...
- LU 分解 (LU Decomposition)
LU分解是指将一个 NxN 矩阵 A 分解为一个上三角矩阵 U 和下三角矩阵 L 的过程, 即: LU=A. 比如我们可以将一个 3x3 矩阵分解为: 如果我们需要求解方程 Ax = b,即求解 LU ...
- LU分解(LU Factorization)计算方法(手算+MATLAB),关于置换矩阵(Permutation Matrix),部分主元消去法(Partial Pivoting)
背景: 求解一些列具有相同系数矩阵的线性方程,如:Ax=b1Ax=b_1Ax=b1,Ax=b2Ax=b_2Ax=b2,-Ax=bpAx=b_pAx=bp等.当矩阵AAA可逆时,可以先求出矩阵 ...
- LU分解法matlab程序。
%创建一个数组存放线性方程组的系数矩阵 a=[1 2 3; 0 1 2;2 4 1]; [~,n]=size(a); %使用size函数读取矩阵的维数,因为本问题中是方阵,所以行列数相等 l=eye( ...
- R语言-关键节点问题-方案四-K-shell分解法
K-shell分解法,O(N) step 1 查找网络中所有度为1的节点,并将这些节点及连接的边去掉. step 2 经过步骤1后,网络中可能会出现新的度为1的节点,循环执行 ...
- 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解
目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...
- 用MATLAB实现plu分解,编制计算给定矩阵 A 的 LU 分解和 PLU 分解的通用程序
用VB编写一个程序,计算出给定的10*10矩阵(存放在二维数组A中)每行元素的最大值和每列元素的最小值 ModuleModule1SubMain()DimA(,)AsInteger={{1,2,3,4 ...
- 线性代数——LU分解
定义 给定矩阵A,将A表示成下三角矩阵L 和上三角矩阵U 的乘积,称为LU分解 矩阵LU (笔算方法) 如矩阵 A= ,进行LU 分解,则 A=LU= = 则 , , (1) 由 得 ...
- matlab高斯消去法,matlab实现高斯消去法、LU分解
朴素高斯消去法: function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) ...
最新文章
- 某厂:有微服务经验者优先!
- 什么是优秀管理者的第一课?【如何搞垮一个企业】
- 服务器修改kb,Microsoft KB2344941:操作系统即插即用方式的改变,提高iSCSI Initiator的适应力...
- springboot访问静态页面404_解决 springboot 2.x 访问静态资源 404的问题
- kafka通过零拷贝实现高效的数据传输
- Educational Codeforces Round 47 (Div 2) (A~G)
- GO编程程序员修炼秘籍:十本经典书单
- Java 内部类、局部内部类、静态内部类使用
- IE浏览器不能自动显示PDF文件的解决办法
- 三菱PLC Q系列经典大型12轴Q01U 实际使用中程序,详细中文注释
- [笔记]Windows核心编程《十七》内存映射文件
- android 读取单反相机,手机怎么直接读取相机照片更方便?
- openbsd mysql_使用OpenBSD一年的总结
- d3d11初窥(Introduction to 3D Game Programming with DirectX 11下载)
- 步进电机基本原理、分类、基本参数、应用场景
- Parallels Desktop 安装Win 10提示“安全启动功能防止操作系统启动”该怎么解决?
- 模型稳定度指标PSI 释义及计算示例
- 上海之行,我是来要饭的
- (co-,contra-,in-)variance in Scala, what is [+-A]
- 天选2出现找不到wlan问题