gpt4 book ai didi

algorithm - 如何充分计算这个矩阵

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:38 25 4
gpt4 key购买 nike

当我参加算法类(class)时,教授给了我们一个关于矩阵计算的有趣问题。给定一个 n*n maxtrix A 和 n*1 列向量 b,我们需要计算对应的 x 满足: Ax=b使用matlab语言定义A和b如下:

A=[];
for j=1:n-1
aj=[];
aj=[aj;repmat(1,j-1,1)];
aj=[aj;1];
aj=[aj;repmat(-1,n-j,1)];
A=[A,aj];
end
A=[A,repmat(1,n,1)];
b=rand(n,1)*2;

我们只是通过输入得到x的值:

x=A\b;

然后我们通过以下方式检查结果:

res=A*x-b;

我们发现很多元素的res绝对值都大于1。

但是,教授告诉我们:只需添加如下所示的随机项目

A1=(A1+rand(n,n)*0.0001)
x1=A1\b;
res1=A*x1-b; # there ,this is A not A1

而且我们会发现res1的元素都小于1e-4

但是,A和A1的条件数几乎一样。

我猜这是一个累积的数值误差。但我无法从数学上充分地解释这种现象。数学极客或 CSers 知道吗?谢谢。

最佳答案

这真的取决于矩阵 A。
市面上有太多的线性方程求解器,我们无法告诉您为什么在这种特殊情况下您会得到那种效果。
看看这个:http://de.mathworks.com/help/matlab/ref/mldivide.html

正如您在“算法”下看到的那样,对于普通输入矩阵,总共有 7 种不同的求解器。
它们都具有或多或少影响数值误差的特性。

关于algorithm - 如何充分计算这个矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com