《Numerical Methods》-chaper7-解线性方程组的直接方法和最小二乘问题

基于我们在线性代数中学习过的知识,我们知道解线性方程组本质上就是Gauss消元,也就是基于增广矩阵A的矩阵初等变换。关于数学层面的内容这里不做过多的介绍,这里的侧重点是从数值计算的角度来看这些常见的问题。

那么基于Gauss消元的算法,我们将会很好理解如下的Matlab代码:

for j = 1:n-1

for i = j+1 : n

mult = A(i,j)/A(j,j);

A(i,:) = A(i,:) – mult*A(j,:);    %这里改写成A(i , j:n) = A(i,j:n) – mult*A(j,j:n)效率更高

b(i) = b(i) – mult*b(j);         %这里的b是增光矩阵的最右一列向量,也就是方程组右侧常数部分

end;

end;

这我们能够明显的看到,由于这里计算mult的时候涉及除法,所以无法处理A(j,j)=0的情况。

关于这种一般化的Gauss消元,进行如下的时间复杂度的分析,这里我们以进行多少次浮点运算为衡量标准。

写法1 :

A(i,:) = A(i,:) – mult*A(j,:);

这种情况下,进行的浮点运算数如下:

写法2:

A(i , j:n) = A(i,j:n) – mult*A(j,j:n)

这种写法相对第一种写法的优化,体现在在处理每一行的时候,自动跳过了该行前面为0的元素,以减少浮点运算的次数。

它的运算次数计算过程如下:

这里进行了相当精确的计算,可以看到,对于n x n的系数矩阵,完成Guess消元至少也需要进行n的三次方次浮点运算。

承接上面对Guess消元算法的详细运算复杂度的分析,我们在分析时间复杂度的时候,往往会需要计算如下的一个和式:

这里就简单的介绍一下这个和式的一个估算方法。

我们利用幂函数与x轴围成的面积,使用一个类似夹逼准则的手法,来对这个和式进行估算。

我们将幂函数y = x^p,横坐标取m份,间距为1。

那么和式其实就是图中矩阵的和,那么我们很容易能够看到如下的一个不等式成立:

而这里我们观察前4个矩形上面的小矩形,他们和实际上等于第5个矩形,因此我们容易看到如下的不等式:

因此这个和式成功的被两个定积分给“夹逼”了,下面分别求定积分。

时间: 2024-08-19 10:35:26

《Numerical Methods》-chaper7-解线性方程组的直接方法和最小二乘问题的相关文章

选主元的高斯-约旦(Gauss-Jordan)消元法解线性方程组/求逆矩阵

做数据结构课设时候查的资料,主要是看求逆矩阵方面的知识的. 选主元的高斯-约当(Gauss-Jordan)消元法在很多地方都会用到,例如求一个矩阵的逆矩阵.解线性方程组(插一句:LM算法求解的一个步骤),等等.它的速度不是最快的,但是它非常稳定(来自网上的定义:一个计算方法,如果在使用此方法的计算过程中,舍入误差得到控制,对计算结果影响较小,称此方法为数值稳定的),同时它的求解过程也比较清晰明了,因而人们使用较多.下面我就用一个例子来告诉你Gauss-Jordan法的求解过程吧.顺便再提及一些注

数学-线性代数-#2 用消元法解线性方程组

线性代数-#2 用消元法解线性方程组 #2实现了#1中的承诺,介绍了求解线性方程组的系统方法--消元法. 既然是一种系统的方法,其基本步骤可以概括如下: 1.将方程组改写为增广矩阵: 为了省去传统消元法中反复出现但是没有应用价值的未知数符号和运算符,我们可以将线性方程组表示为增广矩阵的形式,也就是把"Ax=b"中的b附在A右侧; 2.确定第一列中的一个非零元素为主元,以方框框起示之.此元素所在行即为主元行: 一般第n个主元选在第n行.若在进行行变换(交换上下行)后仍没有可供选择的非零元

windows下tomcat zip解压版安装方法

下面记录一下在win7(32位)系统下,安装zip解压版的方法: 一.下载zip压缩包 地址:http://tomcat.apache.org/download-80.cgi 二.解压 我把解压包解压放在了D盘下,具体的路径是:D:\Java IDE\apache-tomcat-8.0.39 三.配置jdk到tomcat 在tomcat安装目录下的bin目录中有startup.bat和shutdown.bat这两个文件, 都使用记事本打开,在第一行"@echo off"的下一行追加新行

彻底理解浮动float CSS浮动详解 清除浮动的方法

我们把网页的常用的布局格式分为以下三种: 1.标准流. 所谓的标准流就是,行内元素自己单独一行,而块级元素是上下显示的. 以前我们学习的都是标准流.   注意:标准流使我们网页布局中最稳定的一种结构 2. 浮动流 使我们学习的脱离标准流的第一种方式.会影响我们标准流的排列.所以,我们布局的时候,能用标准流做的,就不用浮动做. 3. 定位流 定位流也是脱离标准流的一种模式.它完全脱离标准流,不会对标准流有影响. 浮动(float) 我们要浮动的目的: 我们浮动的目的,就是可以把多个块级元素放到想要

高斯消去法解线性方程组(MPI)

用一上午的时间,用MPI编写了高斯消去法解线性方程组.这次只是针对单线程负责一个线程方程的求解,对于超大规模的方程组,需要按行分块,后面会在这个基础上进行修改.总结一下这次遇到的问题: (1)MPI_Allreduce()函数的使用: (2)MPI_Allgather()函数的使用: (3)线程之间不使用通信函数进行值传递(地址传递)是没有办法使用其他线程的数据,这是设计并行程序中最容易忽视的一点. 1 #include "stdio.h" 2 #include "mpi.h

CentOS下tar解压 gz解压 bz2等各种解压文件使用方法

大致总结了一下linux下各种格式的压缩包的压缩.解压方法.但是部分方法我没有用到,也就不全,希望大家帮我补充,我将随时修改完善,谢谢! .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------- .gz 解压 1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:

统计学习基础(第二版)两种简单的预测方法:最小二乘和最近邻

2.3两种简单的预测方法:最小二乘和最近邻 在本节中我们详细讨论两种简单但有效的预测方法,使用最小二乘线性模型拟合和k最近邻预测.线性模型对结构做了大量的假设,但是可能会产生不准确的预测.K-最近邻对结构做了适当的假设,所以预测通常是精确但不稳定的. 2.3.1线性模型和最小二乘 在过去的30年中,线性模型一直是统计学的支柱,而且现在依然是我们最重要的工具之一.给定一个输入向量,通过以下模型来预测Y: 其中是截距,在机器学习中又叫做偏置,通常在X中包含一个常数变量1,在系数向量中包含是方便的.这

《Numerical Methods》-chaper4-一元非线性方程的解

在许多生产时间问题中,我们根据已知条件往往会列出一个一元非线性方程,一个最典型的例子就是银行存款的问题,由于其利息需要基于前一年的本息和,因此列出来的方程x的指数往往是高次的.还有物理问题当中一系列用微分方程导出的一元非线性方程.因此如何求解一元非线性方程,是计算数学要解决的重要问题之一. 牛顿法: 牛顿法可以通过Taylor定理导出: 不幸的是,单纯的牛顿法并不是使用所有情况的,下面给出一个经过较为精确的绘图利用牛顿迭代最终无解的情况:

Matlab应用实例(9)—A\b解线性方程组

说明:A\b用来求解线性方程组,只要写出系数矩阵A和资源向量b,就可以用左除的方法(高斯消元法)得到解.其调用格式为X=A\b. [例1]求下列线性方程组: 解:写成矩阵形式有: 用MATLAB进行求解 主函数: A=[1 -2 3;3 -2 1;1 1 -1]; b=[2;7;1]; X=A\b 解得: X = 1.6250 -1.5000 -0.8750 版权声明:本文为博主原创文章,未经博主允许不得转载.