问题状态(Conditioning of a problem)

news2024/9/24 14:21:02

Conditioning of a problem

该博客是学习《Numerical Linear Algebra with Applications Using MATLAB》的一些总结,仅供学习使用。

通常即使使用一个稳定的算法来解决一个问题,该问题对数据中小的改变或扰动仍然是敏感的。这些扰动可能来自舍入误差(roundoff error),收集实验数据时的小的测量误差,没有被信号过滤的噪音,近似无穷级数时的截断误差等。如果该问题落入此类,则称该问题为ill-conditioned(病态的)。

Def 1: 不管用什么算法来解决一个问题,如果它的数据中的一个小的相对变化会导致它的计算解的一个大的相对误差, 则称这个问题是病态的(ill-conditioned),如果问题数据中的小扰动导致计算解的小相对误差,则称问题是良态的(well-conditioned)。

需要搞清楚两个概念:stability 和 conditioning。

  1. Stable or unstable 是对于算法而言的;
  2. Well or ill-conditioned 是指特定的问题而非使用的算法。

显然,将不稳定的算法应用于病态的问题是在自找麻烦。(asking for disaster).

但是,对于求解某个问题而言,一个稳定的算法也会产生差的结果,如果输入数据时病态的。 我们假定 f ( x ) f(x) f(x)表示一个算法, x x x表示数据。 我们可以利用 f ( x ) f(x) f(x)来定义well 和ill-conditioning.

Def 2. 定义 x x x x ˉ \bar{x} xˉ分别是初始数据和扰动数据, f ( x ) f(x) f(x) f ( x ˉ ) f(\bar{x}) f(xˉ)是对应的解,则有
如果 ∣ x − x ˉ ∣ |x-\bar{x}| xxˉ很小, ∣ f ( x ) − f ( x ˉ ) ∣ |f(x)-f(\bar{x})| f(x)f(xˉ)也很小,则该问题关于数据 x x x是well-conditioned.
如果 ∣ x − x ˉ ∣ |x-\bar{x}| xxˉ很小, ∣ f ( x ) − f ( x ˉ ) ∣ |f(x)-f(\bar{x})| f(x)f(xˉ)很大,则该问题关于数据 x x x是ill-conditioned. 如下图*

该图片来自Numerical Linear Algebra with Applications Using MATLAB一书

问题对数据的敏感性可以通过定义条件数(condition number)来测量。 条件数越大,则该问题对数据的改变的敏感性越高。

对于一个特定的数据 x x x,假定数据中有很小的误差,问题的输入为 x ˉ = x + Δ x \bar{x}= x +\Delta x xˉ=x+Δx,则计算的值为 f ( x ˉ ) f(\bar{x}) f(xˉ)而非 f ( x ) f(x) f(x), 结果的相对误差除以输入数据的相对误差为:
∣ f ( x ) − f ( x ˉ ) ∣ ∣ f ( x ) ∣ ∣ x − x ˉ ∣ ∣ x ∣ \frac{\frac{|f(x)-f(\bar{x})|}{|f(x)|}}{\frac{|x-\bar{x}|}{|x|}} xxxˉf(x)f(x)f(xˉ)

这个比例测量了一个函数对于输入数据的误差或者改变的敏感性程度。 这导致一个特定问题 f f f的条件数的数学定义。

Def 3. 一个问题 f f f关于输入数据 x x x的条件数定义为
C f ( x ) = lim ⁡ ϵ → 0 + sup ⁡ ∥ δ x ∥ ≤ ϵ ∥ f ( x + δ x ) − f ( x ) ∥ ∥ f ( x ) ∥ ∥ δ x ∥ ∥ x ∥ . C_f(x)=\lim _{\epsilon \rightarrow 0^{+}} \sup _{\|\delta x\| \leq \epsilon} \frac{\frac{\|f(x+\delta x)-f(x)\|}{\|f(x)\|}}{\frac{\|\delta x\|}{\|x\|}} . Cf(x)=ϵ0+limδxϵsupxδxf(x)f(x+δx)f(x).

例1. 寻求下面三个函数的条件数
a. f ( x ) = x 2 , C f ( x ) = ∣ x ∣ ∣ 2 x ∣ / ∣ x 2 ∣ = 2 f(x)=x^2, C_f(x)=|x||2 x| /\left|x^2\right|=2 f(x)=x2,Cf(x)=x∣∣2x∣/ x2 =2, 因此 f f f 是 well-conditioned.
b. f ( x ) = 1 / ( 1 − x ) , C f ( x ) = ∣ x ∣ ∣ 1 / ( 1 − x ) 2 ∣ / ∣ 1 / ( 1 − x ) ∣ = ∣ x / ( 1 − x ) ∣ . f ( x ) f(x)=1 /(1-x), C_f(x)=|x|\left|1 /(1-x)^2\right| /|1 /(1-x)|=|x /(1-x)| . f(x) f(x)=1/(1x),Cf(x)=x 1/(1x)2 /∣1/(1x)=x/(1x)∣.f(x) 是ill-conditioned 在 x = 1 x=1 x=1 附近,并且是 well-conditioned在其他任何地方.
c. f ( x ) = e x , C f ( x ) = ∣ x ∣ ∣ e x / e x ∣ = ∣ x ∣ . f ( x ) f(x)=e^x, C_f(x)=|x|\left|e^x / e^x\right|=|x| . f(x) f(x)=ex,Cf(x)=xex/ex=x∣.f(x)对于大的 x x x是 ill-conditioned.
(b) 和 (c) 表明在 x x x的特定范围内, x x x 相对小的改变将引起 f ( x ) f(x) f(x)的计算的巨大误差.

定义4. 矩阵 A A A的条件数定义为 ∥ A ∥ ∥ A − 1 ∥ \|A\|\left\|A^{-1}\right\| A A1 ,表示为 κ ( A ) \kappa(A) κ(A). ∥ ⋅ ∥ \|\cdot\| 表示任意的矩阵范数.

定义5. 矩阵 A A A是ill-conditioned如果 A A A的条件数很大(large);否则 A A A是well-conditioned.
当然,这里的large是模糊的,条件数如果是在10^4或者更大的范围内则肯定是ill-conditioned,但对于一些矩阵而言,一个较小的条件数也可能表示ill-conditioned,决定矩阵是否是ill-conditioned并不是一门准确的科学。

cond(A); % 2-norm
cond(A,1); % 1-norm
cond(A,'inf'); % infty-norm
cond(A,'fro'); % Frobenius-norm

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

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

相关文章

Python与Arcgis 获取图像信息

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里实现一个很简单的功能,批量的获取图像的相关信息,如影像格式、y分辨率等等,并将这些信息写入到一个csv文件中,同时也会为每个图像生成相应的矩形掩模面。 二、实现代码 在真正执行代码之前,我们首先配置一…

PAT——1111 对称日

央视新闻发了一条微博,指出 2020 年有个罕见的“对称日”,即 2020 年 2 月 2 日,按照 年年年年月月日日 格式组成的字符串 20200202 是完全对称的。 给定任意一个日期,本题就请你写程序判断一下,这是不是一个对称日&a…

DDD 参考工程架构

1 背景 不同团队落地DDD所采取的应用架构风格可能不同,并没有统一的、标准的DDD工程架构。有些团队可能遵循经典的DDD四层架构,或改进的DDD四层架构,有些团队可能综合考虑分层架构、整洁架构、六边形架构等多种架构风格,有些在实…

【JUC并发编程】ArrayBlockingQueue和LinkedBlockingQueue源码2分钟看完

文章目录1、BlockingQueue1)接口方法2)阻塞队列分类2、ArrayBlockingQueue1)构造函数2)put()入队3)take()出队3、LinkedBlockingQueue1)构造函数2)put()入队3)take()出队1、Blocking…

Android Dalvik虚拟机 对象创建内存分配流程

前言 本篇文章介绍我们在日常开发使用Java时new对象的时,Dalvik在堆上的内存分配是如何分配的。内存又和gc相关,下篇文章会分析Dalvik的gc流程。 Dalvik内存管理 内存碎片问题其实是一个通用的问题,不单止Dalvik虚拟机在Java堆为对象分配内…

Python中的类和对象(7)

1.私有变量 在大多数面向对象的编程语言中,都存在着私有变量(private variable)的概念,所谓私有变量,就是指通过某种手段,使得对象中的属性或方法无法被外部所访问。 Python 对于私有变量的实现是引入了一…

MySQL数据库调优————数据库调优维度及测试数据准备

MySQL性能优化金字塔法则 不合理的需求,会造成很多问题。(比如未分页,数据需要多表联查等)做架构设计的时候,应充分考虑业务的实际情况,考虑好数据库的各种选择(比如是否要读写分离,…

Spring IOC Bean标签属性介绍(内含教学视频+源代码)

Spring IOC Bean标签属性介绍(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87442649 目录Spring IOC Bean标签属性介绍(内含教学视频源代码)教学视频源代码…

jetson nano(ubuntu)安装Cmake

文章目录安装环境一.命令行安装二.Cmake源码编译安装安装环境 jetson nano 系统:4.6.1 一.命令行安装 sudo apt install cmake这种直接安装cmake的方式,其实安装的版本都太老了,这种方式不推荐 二.Cmake源码编译安装 更新一下系统软件 su…

子词嵌入,词的相似性和类比任务

fastText模型提出了一种子词嵌入方法:基于word2vec中的跳元模型,它将中心词表示为其子词向量之和。 字节对编码执行训练数据集的统计分析,以发现词内的公共符号。作为一种贪心方法,字节对编码迭代地合并最频繁的连续符号对。 子…

文献阅读:Finetuned Language Models Are Zero-Shot Learners

文献阅读:Finetuned Language Models Are Zero-Shot Learners 1. 文章简介2. 方法介绍3. 实验 1. 数据集整理2. 基础实验3. 消解实验 1. finetune任务数量2. 模型size3. Instruct Tuning4. Few-Shot5. Prompt Tuning 4. 结论 文献链接:https://arxiv.o…

简单理解小目标分割中的weighted BCE Loss与weighted IoU Loss

这两个损失函数出自《FNet: Fusion, Feedback and Focus for Salient Object Detection》一文中,用于处理显著性检测(二分割)中小目标的问题。对于传统的BCE Loss,其存在以下三个问题: 只是简单的将每个像素求BCE再平均,忽视了目…

day5——冒泡排序,选择排序和插入排序的学习

选择排序冒泡排序插入排序 选择排序 选择排序的基本思路就是: 首先假定第一个的下表为所有元素中最小的一个, 然后用后面的每一个元素跟这个元素进行比较, 如果后面的元素比这个元素更小一点, 那么就将找到的最小的元素的下标和…

【c++】vector实现(源码剖析+手画图解)

vector是我接触的第一个容器,好好对待,好好珍惜! 目录 文章目录 前言 二、vector如何实现 二、vector的迭代器(原生指针) 三、vector的数据结构 图解: 四、vector的构造及内存管理 1.push_back() …

《爆肝整理》保姆级系列教程python接口自动化(十二)--https请求(SSL)(详解)

简介 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 小编…

C++:提高篇: 栈-寄存器和函数状态:windows X86-64寄存器介绍

寄存器1、什么是寄存器2、寄存器分类3、windows X86寄存器命名规则4、寄存器相关术语5、寄存器分类5.1、RAX(accumulator register)5.2、RBX(Base register)5.3、RDX(Data register)5.4、RCX(counter register)5.5、RSI(Source index)5.6、RDI(Destination index)5.7、RSP(stac…

iptables和nftables的使用

文章目录前言iptable简介iptable命令使用iptables的四表五链nftables简介nftables命令的时候nftables与iptables的区别iptables-legacy和iptables-nft实例将指定protocol:ip:port的流量转发到本地指定端口前言 本文展示了,iptables和nftable命令的使用。 # 实验环…

win10 安装rabbitMQ详细步骤

win10 安装rabbitMQ详细步骤 win10 安装rabbitMQ详细步骤win10 安装rabbitMQ详细步骤一、下载安装程序二、安装配置erlang三、安装rabbitMQ四、验证初始可以通过用户名:guest 密码guest来登录。报错:安装RabbitMQ出现Plugin configuration unchanged.问题…

力扣SQL刷题10

目录标题618. 学生地理信息报告--完全不会的新题型1097. 游戏玩法分析 V - 重难点1127. 用户购买平台--难且不会618. 学生地理信息报告–完全不会的新题型 max()函数的功效:(‘jack’, null, null)中得出‘jack’,(nul…

基于微信小程序图书馆座位预约管理系统

开发工具:IDEA、微信小程序服务器:Tomcat9.0, jdk1.8项目构建:maven数据库:mysql5.7前端技术:vue、uniapp服务端技术:springbootmybatis本系统分微信小程序和管理后台两部分,项目采用…