
原因是: 1) 有些情况你并不能得到矩阵A, 而只有一个程序告诉你 矩阵向量乘 Ab的值
2) 大型稀疏矩阵 (例如A是10^810^8, 但是A里面非零元素只有10^5), 而A^-1 并不稀疏,
运算量和存储量 极大
解线性方程组方法很多很多, 你提到的是最近本的 消去(求逆), 和 不动点迭代(Jacobi)
理论上就是求逆, 数值上还有无数的问题
《数值分析 中南大学韩旭里 126讲》百度网盘资源免费下载
hjmi
数值分析 中南大学 韩旭里 126讲|线性方程组的迭代解法(一)mp4|线性方程组的迭代解法(五)mp4|线性方程组的迭代解法(四)mp4|线性方程组的迭代解法(三)mp4|线性方程组的迭代解法(七)mp4|线性方程组的迭代解法(六)mp4|线性方程组的迭代解法(二)mp4|数值积分与数值微分(一)mp4|数值积分与数值微分(五)mp4|数值积分与数值微分(四)mp4|数值积分与数值微分(十一)mp4|数值积分与数值微分(十五)mp4|数值积分与数值微分(十四)mp4|数值积分与数值微分(十三)mp4
基于双边Jacobi旋转的奇异值分解算法
V是A的右奇异向量,也是的特征向量;
U是A的左奇异向量,也是的特征向量。
特别地,当A是对称矩阵的时候,=,即U=V,U的列向量不仅是的特征向量,也是A的特征向量。这一点在主成分分析中会用到。
对于正定的对称矩阵,奇异值等于特征值,奇异向量等于特征向量。
U、V都是正交矩阵,满足矩阵的转置即为矩阵的逆。
双边Jacobi方法本来是用来求解对称矩阵的特征值和特征向量的,由于就是对称矩阵,求出的特征向量就求出了A的右奇异值,的特征值开方后就是A的奇异值。
一个Jacobi旋转矩阵J形如:
它就是在一个单位矩阵的基础上改变p行q行p列q列四个交点上的值,J矩阵是一个标准正交矩阵。
当我们要对H和p列和q列进行正交变换时,就对H施行:
在一次迭代过程当中需要对A的任意两列进行一次正交变换,迭代多次等效于施行
迭代的终止条件是为对角矩阵,即原矩阵H进过多次的双边Jacobi旋转后非对角线元素全部变成了0(实现计算当中不可能真的变为0,只要小于一个很小的数就可以认为是0了)。
每一个J都是标准正交阵,所以也是标准正交阵,记为V,则是,则。从此式也可以看出对称矩阵的左奇异向量和右奇异向量是相等的。V也是H的特征向量。
当特征值是0时,对应的Ui和Vi不用求,我们只需要U和V的前r列就可以恢复矩阵A了(r是非0奇异值的个数),这也正是奇异值分解可以进行数据压缩的原因。
+ View Code
基于单边Jacobi旋转的SVD算法
相对于双边,单边的计算量小,并且容易并行实现。
单边Jacobi方法直接对原矩阵A进行单边正交旋转,A可以是任意矩阵。
同样每一轮的迭代都要使A的任意两列都正交一次,迭代退出的条件是B的任意两列都正交。
单边Jacobi旋转有这么一个性质:旋转前若,则旋转后依然是;反之亦然。
把矩阵B每列的模长提取出来,,把记为V,则。
迭代法是数值计算中的内容,迭代法也称为逐次逼近法。他是求一般的方程如f(x)=0以及有n个未知量的方程组如fi(x1,x2,x3,x4,xn)的近似解得普片适用方法,这里的近似解比一般方法要精确,比如说二分法或者试探法,要是用这些方法得到的解只是大体范围,要是想得到比较精确地结果的话,就需要很多次的计算,这样计算量很大。所以说迭代法可以使得到的答案更精确,而且计算量也比一般方法少。
雅可比法和高斯-赛德尔迭代法则是解线性方程组的,而且适合用于求解系数矩阵很多元素都是零的线性代数方程组。而雅可比法和高斯-赛德尔迭代法的区别就是前一个是同时代换,后一个是逐个代换。
具体的计算还是比较麻烦的,而且不是很容易懂的,上课一定不能走神,要不就完了!呵呵呵,你可以看看《数值计算》这本书。里面有更详细的解释的,希望对你有帮助。
你所说的是高斯消去法吧!这里主要就是讲究一个选取主元的方法问题了,他的意义主要在于减少误差,因为主元选的比较小的话可能会产生较大的误差,一般都选一行或者一列中绝对值大的那个,具体的要慢慢想的,很耗时间的,不过比较有意思,呵呵
数学建模
实验报告
姓名:学院: 专业班级:
学号:
数学建模实验报告(一)
——用最小二乘法进行数据拟合
一.实验目的:
1 学会用最小二乘法进行数据拟合。
2 熟悉掌握matlab 软件的文件 *** 作和命令环境。 3 掌握数据可视化的基本 *** 作步骤。 4 通过matlab 绘制二维图形以及三维图形。
二.实验任务:
来自课本
64页习题:
2
用最小二乘法求一形如y=a+bx 的多项式,使之与下列数据拟合:
三.实验过程:
1 实验方法:用最小二乘法解决实际问题包含两个基本环节:先根
据所给出数据点的变化趋势与问题的实际背景确定函数类;然后按照最小二乘法原则求最小二乘解来确定系数。即要求出二次多项式: y=a+bx 的系数。
2
2.程序:
x=[19 25 31 38 44] y=[190 323 490 733 978] ab=y/[ones(size(x));x^2]; a=ab(1),b=ab(2) xx=19:44;
plot(xx,a+bxx^2,x,y,"")
3 上机调试
得到结果如下:
x = 19 25 31 38 44
y=190000 323000 490000 733000
a = 09726
b = 00500 图形:
978000
四. 心得体会
通过本次的数学模型的建立与处理,我们学习并掌握了用最小二
乘法进行数据拟合,及多项式数据拟合的方法,进一步学会了使用matlab 软件,加深了我们的数学知识,提高了我们解决实际问题的能力,为以后深入学习数学建模打下了坚实的基础。
数学建模实验报告(二)
——用Newton 法求方程的解
一. 实验目的
1 掌握Newton 法求方程的解的原理和方法。 2 利用Matlab 进行编程求近似解。
二. 实验任务
来自课本109页习题4-2:
用Newton 法求f(x)=x-cosx=0的近似解
三. 实验过程
1 实验原理:
把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x-x0)f"(x0)+(x-x0)^2f""(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f"(x0)(x-x0)=0 设f"(x0)≠0则其解为x1=x0-f(x0)/f"(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f"(x(n))。
2 程序设计:
function y=nd(x)
y= x-cosx
function y=nd0(x) y=1+sinx 主程序
x=0; %迭代初值 i=0; %迭代次数计数 while i
y=x-nd(x)/nd0(x); %牛顿迭代格式 if abs(y-x)>10^(-5); %收敛判断 x=y; else peak end i=i+1; end
fprintf("\n%s%4f \t%s%d","x=",x,"i=",i) %输出结果
四. 实验心得
通过这次实验我掌握了Newton 法求解方程的方法。并通过
编程进一步熟悉了Matlab 的使用方法。在实验过程中仍然遇到了不少的困难,比如说编程调试部分,需要有很大的耐心去修改,再调试。而在这一步步的改进过程中发现自己的进步。
数学建模实验报告(三)
——用Jacobi 迭代法求解线性方程组
一. 实验目的
2 掌握Jacobi 迭代法求解线性方程组的方法 3 学会用Matlab 编程求解方程
二. 实验任务
课本155页习题1: 性方程组:
取初始向量x=(0, 0, 0) ,用Jacobi 迭代法求解线
t
x +2x -2x =1x +x +x =3 2x +2x +x =5
11
2
3
2
3
1
2
3
三. 实验过程
1 方法原理:迭代法就是用某种极限过程逐渐逼近线性方程组精确解的方法。迭代法的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计
算新的近似解的规则。
将方程组(413)
中系数矩阵
(721)
分解为
其中为A 的对角矩阵,
(722)
-L,-U 分别为A 的严格下三角矩阵与A 的严格上三角矩阵 假定
(i=1,2,…,n) ,则D 非奇异 取M=D,N=L+U,则得
1
1称为解方程组的Jacobi 迭代法,简称J 法 计算时可写成如下分量形式:
2 程序:
a=[1 2 -2;1 1 1;2 2 1] d=[1;3;5]
x=[0;0;0]; %初始向量
stop=10e-4 %迭代的精度
L=-tril(a,-1)
U=-triu(a,1)
D=inv(diag(diag(a)))
X=D(L+U)x+Dd; n=1;
while norm(X-x,inf)>=stop
x=X;
X=D(L+U)x+Dd; n=n+1; end X
% J迭代公式 % 时迭代中止否则继续
n
3.上机调试:
得实验结果:
a =
1 2 -2 1 1 2 2 d =
1 3 5
stop =
10000e-004 L =
0 0 -1 0 -2 -2 U =
0 -2 0 0 0 0 D =
1 0 0 1 0 0 1 1 0 0 0 2 -1 0 0 0 1
X =
1
1
1
n =
4
四. 实验体会
通过本次实验,我掌握了高斯-赛德尔迭代法,雅可比迭代法求解线性方程的实验方法。此实验报告中只列出了雅可比迭代法的求解程序。但从实验结果来看,高斯-赛德尔迭代法要比雅可比迭代公式的收敛速度快,可见雅可比迭代法并不是一种理想的求解方法,但在一些简单地线性方程中,雅可比迭代法还是比较简单方便的。关于程序的编写也是翻阅了大量资料才得出的,其中犯了不少的语法错误,可见我对matlab 软件还不是很熟练,得加强学习。
哈密尔顿-雅戈比方程(Hamilton-Jacobi equation,HJE) ,是分析力学中用以求解正则方程的一个偏微分方程,是经典力学的一种表述。哈密尔顿-雅戈比方程是经典哈密顿量一个正则变换,经过该变换得到的结果是一个一阶非线性偏微分方程,方程之解描述了系统的行为。在物理学里,哈密尔顿-雅戈比方程(Hamilton-Jacobi equation,HJE) 是经典力学的一种表述。哈密尔顿-雅戈比方程、牛顿力学、拉格朗日力学、哈密顿力学,这几个表述是互相全等的。而哈密尔顿-雅戈比方程在辨明守恒的物理量方面,特别有用处。有时候,虽然物理问题的本身无法完全解析,哈密顿-雅可比方程仍旧能够正确的辨明守恒的物理量。
HJE 是经典哈密顿量一个正则变换,经过该变换得到的结果是一个一阶非线性偏微分方程,方程之解描述了系统的行为。与哈密顿运动方程的不同之处在于 HJE 是一个偏微分方程,每个变量对应于一个坐标,而哈密顿方程是一个一阶线性方程组,每两个方程对应于一个坐标。HJE 可以漂亮地解析一些重要问题,例如开普勒问题。
HJE 是唯一能够将粒子运动表达为波动的一种力学表述。因此,HJE 满足了一个长久以来理论物理的研究目标(早至 18 世纪,约翰·伯努利和他的学生皮埃尔·莫佩尔蒂的年代);那就是,寻找波传播与粒子运动的相似之处。力学系统的波动方程与薛定谔方程很相似;但并不相同。稍后会有详细说明。HJE 被认为是从经典力学进入量子力学最近的门阶。
高斯迭代法可看作是雅克比迭代法的一种修正。两者的收敛速度在不同条件下不同,不能直接比较,即使在同样条件下,有可能对于同样的系数矩阵出现一种方法收敛,一种方法发散。
计算谱半径,普半径小于1,则收敛,否则不收敛。其中谱半径就是迭代矩阵J或者G的最大特征值。
也可用列范数或行范数判断,列范数或者行范数小于1,则收敛。但范数大于1时,不能说明其发散,还要通过计算谱半径来确定其收敛性。
扩展资料:
在数值线性代数中是用于求解线性方程组的迭代方法。 它以德国数学家卡尔·弗里德里希·高斯(Carl Friedrich Gauss)和菲利普·路德维希·冯·塞德尔(Philipp Ludwig von Seidel)命名,与雅可比方法相似。
虽然它可以应用于对角线上具有非零元素的任何矩阵,但只能在矩阵是对角线主导的或对称的和正定的情况下,保证收敛。
参考资料来源:百度百科-高斯-赛德尔迭代
Hamilton-Jacobi equation
哈密顿-雅可比方程;
例句
1 On the Classical Limit of the Quantum Mechanics Based on the Hamilton-Jacobi Equation
从哈密顿-雅可毕方程看量子力学的经典极限
2 The variations in Hamilton-Jacobi equation in curved spacetime are separated by means of tortoise coordinate transform
适当地采用乌龟坐标变换,便可对弯曲时空中的Hamilton-Jacobi方程进行变量分离。
3 The minimum time function is lower semicontinuous and it is a viscosity supersolution to the contingent Hamilton-Jacobi equation
极小时间函数是下半连续的且是相依Hamilton-Jacobi方程的粘性上解
以上就是关于matlab求解线性方程组AX=B的形式,可以求逆得到结果,为什么要采用各种数值迭代方法如Jacobi迭代等方法全部的内容,包括:matlab求解线性方程组AX=B的形式,可以求逆得到结果,为什么要采用各种数值迭代方法如Jacobi迭代等方法、求数值计算方法答案(韩旭里)复旦大学出版社,谢谢。在这两天给出最好,急急急急急!、SVD分解为什么是最好的QR分解和SVD比较LU呢SVD并行算法可行么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)