矩阵病态问题

news2024/9/20 15:01:28
  • 病态(ill-conditioned)矩阵
  • 病态(ill-posed)方程

病态矩阵

  • 矩阵的frobenius范数:
    • 对每一个元素平方,求和再开平方

A=\begin{bmatrix} a &b \\ c& d \end{bmatrix}

\begin{Vmatrix} A \end{Vmatrix}=\sqrt{|a|^2+|b|^2+|c|^2+|d|^2}

  • 矩阵的条件数:矩阵的frobenius范数与该矩阵的逆的frobenius范数的乘积

cond(A)=\begin{Vmatrix} A \end{Vmatrix}\cdot\begin{Vmatrix} A^{-1} \end{Vmatrix}

  • 对于同阶矩阵,矩阵的条件数越大,他的病态程度越高 
    • 一般而言,条件数小于100,矩阵健康
    • 介于100-1000之间,有一定的病态趋势
    • 大于1000,病态

病态矩阵的实质

  • 矩阵向量(行或列)之间存在共线性

举例

\begin{bmatrix} 1 & 2\\ 3.00001 & 6 \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \end{bmatrix}=\begin{bmatrix} 6\\ 18 \end{bmatrix}

import numpy as np

A = np.array([[1, 2], [3.00001, 6]])
b = np.array([6, 18])
def cond(A):
    a = np.sum(A**2)**0.5
    b = np.sum(np.linalg.inv(A)**2)**0.5
    return a*b


x = np.linalg.solve(A, b)
print(x, "  ", cond(A))
[0. 3.]    2500003.000017089


 

\begin{bmatrix} 1 & 2\\ 2 & 6 \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \end{bmatrix}=\begin{bmatrix} 6\\ 18 \end{bmatrix}

import numpy as np

A = np.array([[1, 2], [2, 6]])
b = np.array([6, 18])
def cond(A):
    a = np.sum(A**2)**0.5
    b = np.sum(np.linalg.inv(A)**2)**0.5
    return a*b


x = np.linalg.solve(A, b)
print(x, "  ", cond(A))
[0. 3.]    22.500000000000004


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1080898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LayoutInflater.inflate的用法

LinearLayout ll findViewById(R.id.ll); LayoutInflater layoutInflater LayoutInflater.from(this); layoutInflater.inflate(R.layout.aa,ll); 把第一个参数的xml内容加到第二个参数viewgroup中。 如果第二个参数为null,就直接view xxxxxx.inflate();

Unity设计模式——模板模式

模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得 子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Abstract Class 是抽象类,其实也就是一抽象模板,定义并实现了一个模版方法。这…

面试过不了?超全,高频接口测试面试题+答案,预判你的预判...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题1&#xff…

Postgresql源码(115)LLVM JIT运行逻辑分析(上)

1 JIT入口开关 总入口:jit_enabled打开 且 生成计划成本超过jit_above_cost启动JIT。 计划成本超过jit_optimize_above_cost,执行PGJIT_OPT3使用O3对IR进行优化。计划成本超过jit_inline_above_cost,执行PGJIT_INLINE。jit_expressions开关如…

MES生产管理系统 MES系统

MES生产管理系统 MES系统 MES包括ERP及生产管理,主要有销售,采购,仓库,财务,设备管理,生产,报工,质量管理模块。适用于各行各业的生产情况。 1.销售模块(销售订单&…

证件照如何自己换底色?快速证件照换底色方法

提交证件照信息的时候,通常需要满足一些规定,比如某一种背景底色,当不符合要求的时候,我们该怎么更换证件照底色呢?其实可以使用证件照换背景(证件照换背景 证件照换颜色 照片换背景-压缩图)工具…

Android Studio git 取消本地 commit(未Push)

操作比较简单 1.选中项目然后依次选择:Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^,表示退回到上一个版本。

c++中什么时候用double?

c中什么时候用double? 在C中,通常使用double数据类型来表示浮点数,特别是当需要更高的精度时。以下是一些情况下可以考虑使用double的示例: 1. **需要高精度的计算**:当您需要进行精确的浮点数计算时,double通常比flo…

CANoe从零学习第2期课程,全新上线!

课程内容的视频解读 CANoe编程宝典课程内容介绍 课程内容的视频解读,复制链接,打开抖音查看 :CANoe编程宝典课程内容介绍 - 抖音

2023年中国划船机产量、销量及市场规模分析[图]

划船机是一种健身器材,它模拟了划船的运动,可以锻炼身体的肌肉力量和协调性。划船机通常由座椅、把手、脚踏板和传动装置组成,使用者可以通过拉动把手来模拟划船的动作,从而达到锻炼身体的目的。 划船机产业链 资料来源&#xff…

4+1视图与UML

目录 逻辑视图过程视图开发视图物理视图(部署视图)用例视图 41视图,即逻辑视图,过程视图,实现视图,部署视图,用例视图。 为什么不用一个视图? 针对多个用户,即终端用户&a…

史上最强,Jmeter接口测试-dubbo接口实战(超级详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、dubbo插件准备…

微信开发工具构建npm and git切换分支

目录 git切换分支NPM构建 git切换分支 案例: 再次查看分支就会发现自己的分支已切换,然后需要重新构建NPM一次 NPM构建 记得安装一下这个,然后在构建 如果未安装NPM,这时候需要打开命令端,安装操作,操作…

Logseq插件市场打不开问题处理

我的处理步骤: 1. 切换代理模式: 默认的system-> sockets: 按照下图所示 2. 再次切换, socks->system, 搞定

【计算机网络】-基础知识

1.计算机网络(计算机技术通信技术)的结合 ICTITCT 2.计算机分类1:通信子网(通信节点、通信链路),资源子网(PC、服务器,类似终端节点) 分类2:网络的结构,例如…

typora、picgo与gitee配置

typora、picgo与gitee配置 typoragitee注册新建仓库配置仓库私人令牌右上角选择“设置”选择私人令牌后生成新令牌设置私人令牌描述与权限帐号安全验证 初始化readme picgo国内可下载链接插件设置图床设置picgo设置 typora偏好设置图库接入 处理以前笔记中的图片 一直以来用的w…

java线程池超详细解析

java线程池超详细解析 一、线程池主要核心原理二、线程池代码实现三、自定义线程池1、自定义线程池原理2、自定义线程池参数3、自定义线程池任务拒绝策略3、代码实现 四、线程池多大合适呢? 一、线程池主要核心原理 创建一个池子,池子中是空的提交任务时…

SAP/BW 开发人员安装Eclipse详细过程和踩的坑

之前一直用的HANA STUDIO做BW开发,但是一直各种BUG,就想换成Eclipse,CSDN有几篇写的安装过程,但还是踩了点小坑,记下来当自己笔记,以后再按得时候看一眼。 1.安装的思路 其实没什么思路,就很简单&#xf…

【java学习】包package和引用import(22)

文章目录 1. 为什么需要package包2. JDK中主要的包介绍 1. 为什么需要package包 在java中包的概念就是和文件夹的概念类似,同样,包的存在也是为了解决以上的问题(文件太乱不好管理和同名文件冲突)          package语句作…

多线程代码中,如何查看各个线程的状态(JAVA)

首先我们先编写一个简单的多线程代码: class MyThread extends Thread{Overridepublic void run() {while (true) {System.out.println("创建的一个新线程");//让循环慢一点try {Thread.sleep(1000);} catch (InterruptedException e) {throw new Runtim…