杜利特尔 (Doolittle)矩阵分解法求线性方程组的解

2023-11-15

简介

在这里插入图片描述 
 若方阵 A 可以分解为一个下三角矩阵 L 和一个上三角矩阵 U的乘积,即 A = LU,则这种分解称为 A 的一种三角分解或 LU分解。如果 L 为单位下三角矩阵,则称为杜利特尔 (Doolittle)。
 以四阶矩阵为例,可分解为以下形式:在这里插入图片描述

实例

在这里插入图片描述
在这里插入图片描述

代码

#include<iostream>
using namespace std;

int n;
double a[100][100],b[100],l[100][100],u[100][100],y[100],x[100];

void input(){
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
			cin>>a[i][j];
		cin>>b[i]; 
	} 
}

void Doolitte()
{
	for(int i=0;i<n;i++)	
	{
		for(int j=0;j<n;j++)
		{
			l[i][i] = 1;
			if(j>i) l[i][j] = 0;
			if(j<i) u[i][j] = 0;
		}
	} 
	for(int k=0; k<n; k++) {
        for(int j=k; j<n; j++) {           // dolittle分解
            u[k][j]=a[k][j];
            for(int i=0; i<=k-1; i++)
                u[k][j]-=(l[k][i]*u[i][j]); 
        }
        for(int i=k+1; i<n; i++) {
            l[i][k]=a[i][k];
            for(int j=0; j<=k-1; j++)
                l[i][k] -= (l[i][j]*u[j][k]);
            l[i][k]/=u[k][k]; 
        }
    }
    
    for(int i=0; i<n; i++) { // 解Ly = b
        y[i] = b[i];
        for(int j=0; j<=i-1; j++)
            y[i] -= (l[i][j]*y[j]);
    }

    for(int i=n-1; i>=0; i--){ // 解UX = Y
        x[i]=y[i];
        for(int j=i+1; j<n; j++)
            x[i] -= (u[i][j]*x[j]);
        x[i]/=u[i][i];
    }
}

int main()
{
	cout<<"输入系数矩阵的阶数"<<endl;
	cin>>n;
	cout<<"输入系数矩阵"<<endl;
	input(); 
	Doolitte();
	for(int i=0;i<n;i++)
		cout<<x[i]<<" ";
	cout<<endl; 
	return 0;
 } 

结果是:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

杜利特尔 (Doolittle)矩阵分解法求线性方程组的解 的相关文章

随机推荐

  • 丢失OCR,Voting Disk后如何重建

    在10gR2的RAC中 Votedisk只能通过dd进程备份 假设没有Votedisk备份或OCR也损坏且没有备份 那么可以重新执行节点的root sh脚本来初始化Votedisk和OCR 之后使用VIPCA RACGONS SRVCTL等
  • Linux系统中查看可执行程序的所在目录

    前言 在嵌入式开发中 有时候需要知道可执行程序的所在目录 在工作中 遇到一次定制开发 是集成对方公司的算法 对方要求把模型文件放到和可执行程序相同的目录下 当时完全不知道可执行程序在设备的哪个目录 因为没有遇到过也没有思考过这个问题 当时也
  • 快速排序和归并排序哪个快?

    两个排序的基本思想都是分治 分而治之 实现一般都使用递归实现 1 快速排序 双边指针 交换法 记录分界值 创建左右指针 记录下标 以第一个元素为分界值 先从右向左找出比分界值小的数据 然后从左向右找出比分界值大的数据 左右指针下标未过界 交
  • 30K的月薪,是个什么段位?

    Java程序员30K的月薪 是个什么段位 大家可以参照BAT等一线大厂的职级 一般是高级工程师和资深工程师的职位 在阿里是p6 p7左右 在百度是t5左右 腾讯是t2 3左右 在京东是t3 1 美团是p6左右 掌握的技能树主要包含哪个方面
  • 【SEAN的日志】如何突破微信小程序2M限制?

    微信小程序限制2M大小一直是很多开发者的痛 我也是其中之一 网上已经有分包的解决方案 即使用subPackages 具体使用网上已经有很多教程我这里就不多赘述了 当大家可能有需求需要在小程序上实现比较复杂的功能时就需要引入各种库 而wx小程
  • Java方法重载与方法重写的区分

    在Java的学习与开发中我们经常要用到方法重载和方法重写 那么这两个概念有什么区别呢 一 方法重载 Overload 重载 overloading 是在一个类里面 方法名字相同 而参数不同 返回类型可以相同也可以不同 每个重载的方法 或者构
  • jquery/js input 输入金额或者文字放大显示

  • Android 调用系统发短信界面,给指定号码发短信,并带短信内容

    工具类如下ContentUtil java package com zhoucj messagedemo util import android content Context import android content Intent i
  • 这里有好多小巧的绿色工具呀,感觉是神级的

    http www nirsoft net
  • 训练yolo时报错RuntimeError: result type Float can‘t be cast to the desired output type __int64个人解决方案

    运行YOLOv5 6 1和yolor的时候 训练都没能正常运行 均出现了如下错误 AutoAnchor 5 00 anchors target 1 000 Best Possible Recall BPR Current anchors a
  • QT入门Buttons之QToolButton

    目录 一 界面布局介绍 1 布局器中的位置及使用 2 控件的界面属性 2 1对象名称和大小设置 2 2对象文本设置和鼠标箭头更改 2 3 扁平化样式 二 属性功能介绍 1 显示箭头属性 2 按钮风格 3 添加默认action属性 三 Dem
  • 第一次护网HW心得

    以下内容为本人参加第一次护网HW的心得 纯属个人体会 大家看着玩就好 文章目录 背景 实战理解 背景 我开始接触实战 是从某省的第五届网络空间安全竞赛开始的 我参加过第四届比赛 是标准的CTF形式 初赛线上做题 决赛线下AWD攻防 但第五届
  • TOOLS_Pandas groupby 分组聚合常用方法使用示例

    TOOLS Pandas groupby 分组聚合常用方法使用示例 根据给定列中的不同值对数据点 行 进行分组 分组后的数据可以计算生成组的聚合值 注意 下文仅是常用的一些示例 实际操作时可组合使用的方式要多得多 import pandas
  • selenium之Chromedriver更换geckodriver遇到的问题

    记录一下自己有谷歌驱动更换到火狐驱动遇到的问题 因为之前都是使用谷歌驱动 对于火狐了解甚少 几乎就没有用过 尴尬 早上醒来使用谷歌驱动打开目标网站的时候竟然是显示空白网页 刚开始还没有在意 以为是谷歌浏览器自动更新了 简单的以为更新一下最新
  • Picgo的gitee图床简略设置及gitee图片仓库无法使用解决方案

    一 Typora Picgo实现图片上传生成在线链接 Typora是大家耳熟能详的一个文档编写工具 但是我们使用Typora去插入图片时 都是使用的本地缓存图片 如果我们需要将文档发给别人或者电脑清楚缓存以后 就会出现缺失图片的尴尬现象 所
  • 阿里云无影云电脑是干什么用的?五大使用场景

    阿里云无影云电脑是一种易用 安全 高效的云上桌面服务 阿里云无影云电脑可用于高数据安全管控 高性能计算等要求的金融 设计 视频 教育等领域 适用于多种办公场景 如远程办公 多分支机构 安全OA 短期使用 专业制图等 阿里云百科来简单分享什么
  • 解决tensorflow 2.0 里的tensorflow..contrib.tensorboard.plugins import projector报错

    题主尝试用v1 api 即 错误的代码如下 from tensorflow compat v1 contrib tensorboard plugins import projector 报错没有contrib这个模块 原因是tensorfl
  • 二叉排序树的删除,全网最详解析

    解析都在注释中 博主习惯打代码给出详细注释 这里就不做过多阐述 注释看不懂的话 直接留言 二叉排序树的结构声明 二叉排序树的创建 二叉排序树的节点删除 解析都在注释中 博主习惯打代码给出详细注释 这里就不做过多阐述 注释看不懂的话 直接留言
  • Maven执行命令时报:has elapsed or updates are forced and ‘parent.relativePath‘ points at wrong local

    子模块打包时 依赖父模块的版本号是变量时 会报以下错误 parent relativePath points ERROR Non resolvable parent POM for xxxx xxx version xxx pom 1 0
  • 杜利特尔 (Doolittle)矩阵分解法求线性方程组的解

    简介 若方阵 A 可以分解为一个下三角矩阵 L 和一个上三角矩阵 U的乘积 即 A LU 则这种分解称为 A 的一种三角分解或 LU分解 如果 L 为单位下三角矩阵 则称为杜利特尔 Doolittle 以四阶矩阵为例 可分解为以下形式 实例