19476-数学建模-代数方程组的解法实验
数学代数方程组计算
数学代数方程组计算方程组是数学中重要的研究对象之一,它描述了数学模型中的关系和约束。
在代数学中,方程组的求解一直是一个重要的课题。
本文将介绍一些常见的数学代数方程组计算方法,以帮助读者更好地理解和解决方程组求解问题。
一、高斯消元法高斯消元法是求解线性方程组的经典方法之一。
其基本思想是通过消元和回代的方式,将方程组化为上三角矩阵,然后通过回代过程求解未知数的值。
举例来说,考虑一个2×2的线性方程组:```a11x1 + a12x2 = b1a21x1 + a22x2 = b2```首先,我们可以通过消元的方式将第二个方程中的x1消去。
具体步骤如下:1. 将第一个方程乘以a21/a11,得到新的第一个方程。
2. 将第二个方程减去第一个方程的a21/a11倍,得到新的第二个方程。
整个过程就是对方程组进行变换,最终将其化为上三角矩阵的形式。
然后,我们可以通过回代的方式求解未知数的值。
二、矩阵求逆法矩阵求逆法是另一种常见的求解线性方程组的方法。
它的基本思想是将方程组转化为矩阵的形式,然后求解矩阵的逆矩阵,最后将逆矩阵与常数向量相乘得到未知向量。
举例来说,考虑一个2×2的线性方程组:```a11x1 + a12x2 = b1a21x1 + a22x2 = b2```我们可以将其表示为矩阵形式:```A * X = B```其中,```A = [a11 a12; a21 a22]X = [x1; x2]B = [b1; b2]```如果A可逆,我们可以通过求解逆矩阵的方式得到未知向量X的值:```X = A⁻¹ * B```三、雅可比迭代法雅可比迭代法是求解线性方程组的迭代方法之一。
它的基本思想是通过迭代的方式,逐步逼近方程组的解。
以一个3×3的线性方程组为例:```a11x1 + a12x2 + a13x3 = b1a21x1 + a22x2 + a23x3 = b2a31x1 + a32x2 + a33x3 = b3```首先,我们可以使用初始值猜测未知向量X的值,然后将方程组中的某个未知数表示为其他未知数的函数,再代入方程组中,得到迭代公式:```x1(k+1) = (b1 - a12x2(k) - a13x3(k)) / a11x2(k+1) = (b2 - a21x1(k) - a23x3(k)) / a22x3(k+1) = (b3 - a31x1(k) - a32x2(k)) / a33```其中,k表示迭代次数。
代数方程与方程组的解法
代数方程与方程组的解法代数方程和方程组的解法是数学中重要的概念与方法,它们在各个领域的问题求解中发挥着重要作用。
本文将介绍代数方程和方程组的基本定义、解法以及一些常见的应用。
一、代数方程的解法代数方程是一个包含未知数的等式,可以写成f(x)=0的形式,在代数学中,我们主要研究多项式方程的解法。
下面将介绍一些常见的代数方程的解法。
1. 一次方程一次方程是最简单的代数方程,形式为ax+b=0。
它只有一个未知数,并且未知数的最高次数为1。
解一次方程的基本思路是将未知数移到等式的一边,常数移到等式的另一边,从而得到未知数的解。
例如,对于方程2x+3=0,我们可以将3移到等式的另一边,得到2x=-3,再将2x除以2,即可求得x的解为x=-3/2。
2. 二次方程二次方程是形如ax^2+bx+c=0的方程,其中a≠0。
解二次方程的常用方法是配方法、因式分解和求根公式。
其中,求根公式是一种通用的解法,对于任意的二次方程,都可以使用求根公式来求解。
求根公式的表达式为x=(-b±√(b^2-4ac))/(2a),其中±表示两个解。
例如,对于方程x^2-4x+3=0,我们可以使用求根公式来求解,得到x=1或x=3。
3. 高次方程高次方程是指其中未知数的最高次数超过2的方程,如三次方程、四次方程等。
对于高次方程,一般没有通用的解法,我们需要利用数学工具和技巧来求解。
常见的方法包括因式分解、综合除法、使用复数解等。
例如,对于方程x^3-2x^2+x=0,我们可以使用因式分解的方法,将方程写成x(x-1)(x+1)=0,从而得到x=0、x=1或x=-1。
二、方程组的解法方程组是多个方程的集合,其中包含多个未知数,并且这些方程需要同时满足。
方程组的解法可以通过消元法、代入法、Cramer法则等进行求解。
1. 二元一次方程组二元一次方程组是包含两个未知数的一次方程组,形式通常为```a1x+b1y=c1a2x+b2y=c2```可以通过消元法求解。
代数方程组求解
代数方程组求解
matlab中有两种除运算左除和右除。 对于方程ax=b,a 为an×m矩阵,有三种情 况: 当n=m时,此方程成为“恰定”方程 当n>m时,此方程成为“超定”方程 当n<m时,此方程成为“欠定”方程 matlab定义的除运算可以很方便地解上 述三种方程
1.恰定方程组的解
x=a\b x= 2.00 3.00
2.超定方程组的解
方程 ax=b ,m<n时此时不存在唯一解。 方程解 (a ' a)x=a ' b x=(a' a)-1 a ' b —— 求逆法
x=a\b —— matlab用最小二乘法找
一个准确地基本解。
例:
x1+2x2=1
2x1+3x2=2
1 2 2 3 3 4
3x1+4x2=3
=2 x2
3
x1
1
a
x = b
a=[1 2;2 3;3 4];b=[1;2;3]; 解1 x=a\b 解2 x=inv(a'a) a' b x= x= 1.00 1.00 0 0.00
3.欠定方程组的解
当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可求出两个解: 用除法求的解x是具有最多零元素的解 是具有最小长度或范数的解,这个解 是基于伪逆pinv求得的。
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0
x1
1 2 3
x2 = 2 3 4 2 x3
1
a
x = b
线性代数方程组的数值解法_百度文库
线性代数方程组的数值解法【实验目的】1. 学会用MATLAB 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2. 通过实例学习用线性代数方程组解决简化的实际问题。
【实验内容】【题目1】通过求解线性方程组A1x=b1和A2x=b2,理解条件数的意义和方程组的性态对解的影响。
其中A1是n阶范德蒙矩阵,即⎡1x0⎢1x1⎢A1=⎢⎢⎢⎣1xn-12x0x12 2xn-1n-1⎤ x0⎥ x1n-1⎥1,...,n-1 ,xk=1+0.1k,k=0,⎥ n-1⎥ xn-1⎥⎦A2是n阶希尔伯特矩阵,b1,b2分别是A1,A2的行和。
(1)编程构造A1(A2可直接用命令产生)和b1,b2;你能预先知道方程组A1x=和A2x=。
b2的解吗?令n=5,用左除命令求解(用预先知道的解可检验程序)b1(2)令n=5,7,9,…,计算A1,A2的条件数。
为观察它们是否病态,做以下试验:b1,b2不变,A1和A2的元素A1(n,n),A2(n,n)分别加扰动ε后求解;A1和A2不变,b1,b2的分量b1(n),分析A和b的微小扰动对解的影响。
b2(n)分别加扰动ε求解。
ε取10-1010,-8,10-6。
(3)经扰动得到的解记做x~,计算误差-x~x,与用条件数估计的误差相比较。
1.1构造A1,A2和b1,b2首先令n=5,构造出A1,A2和b1,b2。
首先运行以下程序,输出A1。
运行以下程序对A1,A2求行和:由于b1,b2分别是A1,A2的行和,所以可以预知x1=运行下列程序,用左除命令对b1,b2进行求解:得到以下结果: T。
x2=(1,1, ,1)1.2 计算条件数并观察是否为病态1.不加扰动,计算条件数。
运行以下程序:由此可知,A1,A2的条件数分别是3.574∗10, 4,766∗10。
2.b1,b2不变,A1(n,n),A2(n,n)分别加扰动(1)n=5时设x11,x12,x13分别为A1添加扰动10−10,10−8,10−6后的解。
代数方程求解方法
代数方程求解方法代数方程是一种含有未知数的数学等式,其中包含有系数和常数。
求解代数方程是数学中的一个重要问题,解决了这个问题可以得到未知数的值,进而解决各种实际问题。
本文将介绍几种常见的代数方程求解方法。
一、一次方程求解方法一次方程是指未知数的最高次数为1的代数方程,形式如下:ax + b = 0其中,a和b为已知数,x为未知数。
一次方程的求解方法如下:法1:降次消元法通过将方程中的未知数移到等号的一边,已知数移到等号的另一边,来求解x的值。
具体步骤如下:1. 将方程中的已知数移到等号的另一边,得到ax = -b。
2. 除以a,得到x = -b/a。
法2:代入法将方程的等号右边的已知数代入等号左边,解出未知数的值。
具体步骤如下:1. 将方程中的已知数代入等式,得到ax + b = 0。
2. 将已知数带入,得到a(-b/a) + b = 0,化简得到b - b = 0,因此方程成立。
综上所述,一次方程的求解方法如上所述。
二、二次方程求解方法二次方程是指未知数的最高次数为2的代数方程,形式如下:ax^2 + bx + c = 0其中,a、b和c为已知数,x为未知数。
二次方程的求解方法如下:法1:因式分解法通过将方程进行因式分解,将方程变为两个一次方程的乘积形式,进而求解未知数的值。
具体步骤如下:1. 将方程进行因式分解,得到(ax + m)(nx + n) = 0。
2. 令每个因式等于0,解出未知数的值。
法2:配方法通过配方法将二次方程转化为平方形式的方程,再进行求解。
具体步骤如下:1. 将方程中二次项系数a移项,并将二次项和一次项组成一个完全平方,得到(ax^2 + bx) = -c。
2. 令完全平方为一个平方,解出未知数的值。
综上所述,二次方程的求解方法如上所述。
三、高次方程求解方法高次方程是指未知数的最高次数大于2的代数方程,形式如下:anx^n + an-1x^n-1 + ... + a2x^2 + a1x + a0 = 0其中,a0、a1、...、an为已知数,x为未知数。
代数方程组及其解法
代数方程组及其解法代数方程组又称为多元方程组,是由多元之间的数学关系所组成的方程组。
最常见的形式是包括两个或以上的方程,其中每个方程都包含有两个或以上的未知量。
代数方程组在现代数学中有着重要的应用,尤其是在代数几何领域。
因此,了解代数方程组及其解法对于学习更高深的数学知识是必要的。
解一元方程组首先,我们从解一元方程组开始。
一元方程组包括两个或以上的方程,其中每个方程包含有一个未知量。
我们可以利用代数方法来解决一元方程组。
例如,我们考虑以下一元方程组:x + y = 7x - y = 1我们可以使用消元法来解决上述一元方程组。
我们将两个方程相减可以消去其中的一个变量:x + y = 7-(x - y = 1)2y = 6因此,y = 3。
将 y = 3 代入其中一个方程可以得到 x = 4。
解二元方程组接下来,我们考虑解决二元方程组。
二元方程组包括两个或以上的方程,其中每个方程包含有两个未知量。
同样地,我们可以使用类似的方法来解决二元方程组。
例如,我们考虑以下二元方程组:x + y = 32x - y = 4我们可以使用消元法来解决上述二元方程组。
我们将两个方程相加可以消去其中的一个变量:x + y = 3+(2x - y = 4)3x = 7因此,x = 7/3。
将 x = 7/3 代入其中一个方程可以得到 y = -4/3。
解三元方程组最后,我们考虑解决三元方程组。
三元方程组包括两个或以上的方程,其中每个方程包含有三个未知量。
同样地,我们可以使用类似的方法来解决三元方程组。
例如,我们考虑以下三元方程组:x + y + z = 62x - y + z = -1x - 3y + 2z = 13我们可以使用消元法来解决上述三元方程组。
首先,我们可以将第一个方程减去第二个方程可以消去 y 和 z:x + y + z = 6-(2x - y + z = -1)-x + 2y = 7接着,我们将第一个方程减去第三个方程可以消去 y 和 z:x + y + z = 6-(x - 3y + 2z = 13)-2x + 4y - 2z = -7最后,我们将第二个方程乘以 2 然后加上刚刚得到的方程可以消去 x:2x - y + z = -1+(2(-x + 2y = 7))-3y + 5z = 5因此,我们可以得到 y = -1,z = 2,x = 5。
代数方程组数值解法
• 上三角形方程组,将 方程组加工成三角形的 过程称为消元过程
(1) (1) (1) (1) 继续计算可得xn-2, x1 a12 x2 a13 x3 a1 x b n n 1 xn-3 ,…x1的值 (2) (2) (2) x2 a23 x3 a2 n xn b2 xn1 bn1 an1, n xn ( n 1) ( n 1) 计算可得xn-1的值 xn 1 an 1,n xn bn 1 (n) x b 直接得到xn的值 n n
• 将第 l 个方程与第k个方程互换位置,也就是将 第 l 行与第k行的全部元素互换,使alk 成为新的主 元素akk,然后再进行消元。
例7-1 分别用Gauss消去和列主元Gauss消去求解 方程组 2 x x 3 x 1
4 x1 2 x 2 5 x 3 4 x 2x 7 2 1
(1) (1) (1) x1 a12 x2 a13 x3 a1(1) x b n n 1 (2) (2) (2) x2 a23 x3 a2 x b n n 2 ( n 1) ( n 1) x a x b n 1 n 1, n n n 1 (n) x b n n
பைடு நூலகம்
• w(1)=e(1)/f(1);g(1)=b(1)/d(1); %消元 过程(追的过程) • for i=2:length(b)-1 • w(i)=e(i)/(d(i)-f(i-1)*w(i-1)); • end • for i=2:length(b) • g(i)=(b(i)-f(i-1)*g(i-1))/(d(i)-f(i1)*w(i-1)); • end
• • • • • • • • • •
代数方程组的求解方法
即使是收敛很慢的 迭代方法也可能比
直接法更有效!
1. 代数方程组求解方法概述
1.2 求解代数方程组的直接解法与迭代法 直接解法 求解三对角阵(一维问题)的直接解法:TDMA, Thomas算法
TDMA 与 Thomas 算法常用于五对角阵(二维)
及七对角阵(三维)迭代求解法中的直接求 解部分---加快收敛速度
பைடு நூலகம்
比于(N+1)! Cramer法则根本无法应用与数值计算。
1. 代数方程组求解方法概述
1.2 求解代数方程组的直接解法与迭代法
直接解法
Gauss消元法:先要把系数矩阵通过消元而化为上三
角阵然后逐一回代
若未知数个数为 N,该法所用乘法的次数近
似正比于N3。
如二维正方形域内的 Laplace 方程,当采用 3200 个节点时,采用 Gauss 消元法所需的计 算次数是完成一轮 Jacob 迭代所需计算次数 的168倍!
第八章 代数方程组的数值解法
王 娴
西安交通大学航天学院
内容
本章内容:对流动传热问题的控制方程进行离散后所 形成的代数方程组的求解方法,这是对物理过程进行 数值模拟的最后一个重要环节。
代数方程组求解方法概述 求解代数方程组的迭代法
迭代法的收敛性及加速收敛的方法
1. 代数方程组求解方法概述
1. 代数方程组求解方法概述
1.2 求解代数方程组的直接解法与迭代法 迭代解法:假设解记作 P = A-1b , 构造多维空间的 一个无限序列 P(n), 当n∞ 时,它收敛于A-1b 。一般
地,第 n 次迭代所得之值取决于A,b及上一次迭代值 P(n-1),即: P(n) = f ( A, b, P(n-1) )
代数方程组的解法
代数方程组的解法代数方程组是初中数学中的重要内容,也是数学学习的基础。
掌握代数方程组的解法,对于解决实际问题和提高数学能力都有着重要的作用。
本文将介绍几种常见的代数方程组的解法,希望能对中学生和他们的父母有所帮助。
一、一元一次方程组的解法一元一次方程组是由一元一次方程构成的方程组,通常形式为:\[\begin{cases} ax+by=c \\ dx+ey=f \end{cases}\]其中a、b、c、d、e、f为已知数,x、y为未知数。
解一元一次方程组的基本思路是利用消元法或代入法。
消元法是通过逐步消去未知数的系数,将方程组化简为一个只含有一个未知数的方程,然后求解该方程即可得到解。
代入法则是将一个方程的解代入另一个方程,从而得到另一个只含有一个未知数的方程,然后求解该方程。
例如,解方程组:\[\begin{cases} 2x+3y=7 \\ 4x-5y=1 \end{cases}\]我们可以先通过消元法将第二个方程的系数化为2倍:\[\begin{cases} 2x+3y=7 \\ 8x-10y=2 \end{cases}\]然后将第二个方程减去第一个方程的2倍,得到:\[7x-13y=-5\]接着,我们可以利用代入法,将第一个方程的解x=2代入第二个方程,得到:\[8(2)-10y=2\]\[16-10y=2\]\[y=\frac{14}{10}=\frac{7}{5}\]最后,将y的值代入第一个方程,得到:\[2x+3(\frac{7}{5})=7\]\[2x+\frac{21}{5}=7\]\[2x=\frac{14}{5}\]\[x=\frac{7}{5}\]因此,方程组的解为x=7/5,y=7/5。
二、二元一次方程组的解法二元一次方程组是由两个一元一次方程构成的方程组,通常形式为:\[\begin{cases} ax+by=c \\ dx+ey=f \end{cases}\]其中a、b、c、d、e、f为已知数,x、y为未知数。
线性代数方程组求解
线性代数⽅程组求解线性代数⽅程组求解⼀、实验要求编程求解⽅程组:⽅程组1:⽅程组2:⽅程组3:要求:⽤C/C++语⾔实现如下函数:1.bool lu(double* a, int* pivot, int n);实现矩阵的LU分解。
pivot为输出参数,pivot[0,n) 中存放主元的位置排列。
函数成功时返回false,否则返回true。
2.bool guass(double const* lu, int const* p, double* b, int n);求线代数⽅程组的解设矩阵Lunxn 为某个矩阵anxn 的LU 分解,在内存中按⾏优先次序存放。
p[0,n)为LU 分解的主元排列。
b 为⽅程组Ax=b 的右端向量。
此函数计算⽅程组Ax=b 的解,并将结果存放在数组b[0,n)中。
函数成功时返回false ,否则返回true 。
3. void qr(double* a, double* d, int n);矩阵的QR 分解假设数组anxn 在内存中按⾏优先次序存放。
此函数使⽤HouseHolder 变换将其就地进⾏QR 分解。
d 为输出参数,d [0,n) 中存放QR 分解的上三⾓对⾓线元素。
4. bool hshld(double const*qr, double const*d, double*b, int n); 求线代数⽅程组的解设矩阵qrnxn 为某个矩阵anxn 的QR 分解,在内存中按⾏优先次序存放。
d [0,n) 为QR 分解的上三⾓对⾓线元素。
b 为⽅程组Ax=b 的右端向量。
函数计算⽅程组Ax=b 的解,并将结果存放在数组b[0,n)中。
函数成功时返回false ,否则返回true 。
⼆、问题分析求解线性⽅程组Ax=b ,其实质就是把它的系数矩阵A 通过各种变换成⼀个下三⾓或上三⾓矩阵,从⽽简化⽅程组的求解。
因此,在求解线性⽅程组的过程中,把系数矩阵A 变换成上三⾓或下三⾓矩阵显得尤为重要,然⽽矩阵A 的变换通常有两种分解⽅法:LU 分解法和QR 分解法。
代数方程的解法代数方程
代数方程的解法代数方程代数方程是数学中常见的一类方程,它涉及到未知数和常数之间通过代数运算的关系。
解决代数方程的问题在数学研究和实际应用中都具有重要意义。
本文将会介绍几种常见的代数方程解法。
一、一次方程的解法一次方程是最简单的代数方程,形如ax + b = 0,其中a和b是已知常数,x是未知数。
解一次方程的步骤如下:1. 移项:将常数项b移到等式的另一侧,得到ax = -b。
2. 化简:如果a不等于0,将方程两边都除以a,得到x = -b/a。
3. 解释:x = -b/a即为一次方程的解。
二、二次方程的解法二次方程是常见的代数方程,形如ax^2 + bx + c = 0,其中a、b、c 是已知常数,x是未知数。
解二次方程的步骤如下:1. 判别式:计算判别式Δ = b^2 - 4ac。
2. 讨论不同情况:a) 当Δ > 0时,方程有两个不相等的实数根。
根据求根公式x = (-b ± √Δ) / (2a)计算得到解;b) 当Δ = 0时,方程有两个相等的实数根。
根据求根公式x = -b / (2a)计算得到解;c) 当Δ < 0时,方程没有实数解,而是有两个共轭复数根。
三、高次方程的解法高次方程是次数大于二的代数方程,它们的解法相对较为复杂。
一般情况下,高次方程的解法需要借助于数值计算方法或近似解法。
1. 数值计算方法:对于高次方程,常用的数值计算方法包括牛顿法、二分法和迭代法等。
这些方法通过不断逼近方程的解,得到近似解。
2. 近似解法:对于特定的高次方程,可以使用近似解法来求解。
例如,可以通过代数方法将高次方程转化为一次方程或二次方程,再使用已知的解法计算。
四、实例分析为了更好地理解代数方程的解法,以下举例说明:1. 一次方程解法示例:解方程2x + 3 = 7:移项得到2x = 7 - 3,化简得到x = 4/2,即x = 2。
2. 二次方程解法示例:解方程x^2 - 5x + 6 = 0:计算判别式Δ = (-5)^2 - 4(1)(6) = 25 - 24 = 1。
数学实验报告——利用MALTAB计算线性代数方程组的数值解法
实验三线性代数方程组的数值解法一、迭代法求解方程组㈠问题描述给定方程组的矩阵A,通过迭代法求解方程组。
1、选取不同的初始向量和不同的右端项向量,给定误差要求,用两种迭代法计算;2、去顶右端项向量和初始向量,将A的主对角线元素成倍增长若干次,非主对角线元素不变,用雅克比迭代法计算。
㈡方法与公式1、雅克比迭代法2、高斯-赛德尔迭代法㈢结果与分析1、不同初始向量、不同右端项向量、不同精度要求(1)初始向量定为zeros(n,1);①b=zeros(n,1)迭代次数为0,直接得到结果。
③b = 1:n(2)初始向量定为one s(n,1)①b=zeros(n,1)事实上,迭代100次时,所得结果约为10^-32,已经可以认为是0,但是由于没有达到精度要求,故不算收敛。
②b=ones(n,1)④b = n:1(3)初始向量定为1:n①b=zeros(n,1)②b=ones(n,1)(4)初始向量定为n:1①b=zeros(n,1)②b=ones(n,1)④b = n:1(5)简要小结a.在个别情况下雅可比迭代法收敛速度极慢,但事实上没有达到收敛时其计算结果已经可以接受;b.要求的精度越高,迭代的次数越多,迭代的次数与所要求的精度的对数值近似呈线性,也就是说两者近似呈指数关系;b.高斯-赛德尔迭代法有着比雅可比更好的迭代特性;2、更改A的主对角线元素(1) b =20:1;初值 1:20(2) b =20:1;初值 20:1(3) b =1:20;初值 20:1(4) b =[3;5;2;6;8;23;5;8;32;63;23;5;2;12;0;23;1;564;2;65]; 初值 ones(20,1)(5)简要小结a.迭代的次数随着对角线元素的成倍的增长而降低,趋于一稳定值;b.右端项以及迭代初值仅当对角线元素较小时对迭代次数起有作用,对角线元素成倍数增加后,迭代次数不变。
3、总结由以上各个对比可以得出以下结论:a.使用迭代法求解方程组时时,要求的精度越高,迭代次数越大;b.高斯-赛德尔迭代法的迭代次数要比雅可比迭代法迭代次数低;c.雅可比迭代的次数随着矩阵A对角线元素的成倍的增长而降低,d.当矩阵A的对角线元素足够大时,雅可比迭代法的迭代次数趋于稳定值;㈣程序清单1、第一问中的雅可比迭代function [y,k] = jacobi(A,b,m,tol)D = diag(diag(A));L = - tril(A,-1);U = - triu(A,1);n = length(A);y = ones(n,1);BJ=D\(L+U);fJ=D\b;k=0;while norm(A*y-b)/norm(b)>tol && k<mk = k+1;y = BJ*y+fJ;end2、高斯-赛德尔迭代法function [y,k] = GuassSeidel(A,b,m,tol)D = diag(diag(A));L = - tril(A,-1);U = - triu(A,1);n = length(A);BG = (D-L)\U;FG = (D-L)\b;y = zeros(n,1);k=0;while norm(A*y-b)/norm(b)>tol && k<mk = k+1;y = BG*y+FG;end3、第二问中的雅可比迭代function [y,k] = jacobi1(A,b,m,tol) D = diag(diag(A));L = - tril(A,-1);U = - triu(A,1);n = length(A);yk = ones(20,1);BJ=D\(L+U);fJ=D\b;k=0;yk1 = BJ*yk+fJ;k = k+1;ttol = norm(yk1-yk,inf);while ttol>tol && k<mk = k+1;yk = yk1;yk1 = BJ*yk+fJ;ttol = norm(yk1-yk,inf);endy=yk1;4、第一问脚本n=20;A1 = sparse(1:n,1:n,3,n,n);A2 = sparse(1:n-1,2:n,-1/2,n,n);A3 = sparse(2:n,1:n-1,-1/2,n,n);A4 = sparse(1:n-2,3:n,-1/4,n,n);A5 = sparse(3:n,1:n-2,-1/4,n,n);A = A1+A2+A3+A4+A5;b =zeros(20,1);m=10000;for i = 3:10tol = 10^(-i);[xJ,k1(i)] = jacobi(A,b,m,tol); [xG,k2(i)] = GuassSeidel(A,b,m,tol); endk1k25、第二问脚本n=20;k = 1;A1 = sparse(1:n,1:n,3,n,n);A2 = sparse(1:n-1,2:n,-1/2,n,n);A3 = sparse(2:n,1:n-1,-1/2,n,n);A4 = sparse(1:n-2,3:n,-1/4,n,n);A5 = sparse(3:n,1:n-2,-1/4,n,n);b =[3;5;2;6;8;23;5;8;32;63;23;5;2;12;0;23;1;564;2;65]; m=10000;tol = 10^(-5);for k = 1:10A = k*A1+A2+A3+A4+A5;[xJ,k1(k)] = jacobi1(A,b,m,tol);endk1二、一年生植物的繁殖㈠问题描述对于5.1.2的假设,给定参数,试分别用追赶法、稀疏系数矩阵和满矩阵求解;若b 有10%误差,估计对结果的影响。
数学实验——线性代数方程组的数值解
实验5 线性代数方程组的数值解法分1 黄浩 2011011743一、实验目的1.学会用MATLAB软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2.通过实例学习用线性代数方程组解决简化的实际问题。
二、实验内容1.《数学实验》第二版(问题1)问题叙述:通过求解线性方程组A1x=b1,A2x=b2,理解条件数的意义和方程组性态对解的影响,其中A1是n阶范德蒙矩阵,即A1=[1x0x02…x0n−11x1x12…x1n−1……………1x n−1x n−12 (x)n−1n−1], x k=1+0.1k , k=0,1,…,n−1A2是n阶希尔伯特矩阵,b1,b2分别是A1,A2的行和。
(1)编程构造A1(A2可直接用命令产生)和b1,b2;你能预先知道方程组A1x=b1和A2x=b2的解吗?令n=5,用左除命令求解(用预先知道的解可验证程序)。
(2)令n=5,7,9,…,计算A1和A2的条件数。
为观察他们是否病态,做以下试验:b1,b2不变,A1和A2的元素A1(n,n),A2(n,n)分别加扰动ε后求解;A1和A2不变,b1,b2的分量b1(n),b2(n)分别加扰动ε后求解。
分析A与b的微小扰动对解的影响。
ε取10^-10,10^-8,10^-6。
(3)经扰动得到的解记做x̃,计算误差‖x−x̃‖‖x‖,与用条件数估计的误差相比较。
模型转换及实验过程:(1)小题.由b1,b2为A1,A2的行和,可知方程组A1x=b1和A2x=b2的精确解均为n 行全1的列向量。
在n=5的情况下,用matlab编程(程序见四.1),构造A1,A2和b1,b2,使用高斯消去法得到的解x1,x2及其相对误差e1,e2(使用excel计算而得)为:由上表可见,当n=5时,所得的解都接近真值,误差在10^-12的量级左右。
(2)小题分别取n=5,7,9,11,13,15,计算A1和A2的条件数c1和c2,(程序见四.2),结果如下:由上表可见,二者的条件数都比较大,可能是病态的。
数学实验 5:线性代数方程组的数值解法
大倍数 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000
小值q 0.4893 0.2447 0.1631 0.1223 0.0979 0.0816 0.0699 0.0612 0.0544 0.0489 0.0445 0.0408 0.0376 0.0350 0.0326 0.0306 0.0288 0.0272 0.0258 0.0245 21.0000 12.0000 9.0000 8.0000 8.0000 7.0000 7.0000 7.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 5.0000 5.0000
实验 5:线性代数方程组的数值解法
习题3:
已知方程组,其中,定义为: 试通过迭代法求解此方程组,认识迭代法收敛的含义以及迭代初值和方 程组系数矩阵性质对收敛速度的影响。实验要求: (1) 选取不同的初始向量x0和不同的方程组右端向量b,给定迭 代误差要求,用雅可比迭代法和高斯-赛德尔迭代法计算, 观测得到的迭代向量序列是否均收敛?若收敛,记录迭代 次数,分析计算结果并得出结论; (2) 取定右端向量b和初始向量x0,将A的主对角线元素成倍的 增长若干次,非主对角元素不变,每次用雅可比迭代法计 算,要求迭代误差满足,比较收敛速度,分析现象并得出结 论。 1、 程序设计(可直接粘贴运行) 1) Jacobi迭代法 function y=jacobi(a,b,x0,e,m) %定义jacobi函数,其中:a,b为线性方程组中的矩阵和右端向量;x0 为初始值; %e和m分别为人为设定的精度和预计迭代次数;运行结果y为迭代的结 果和所有中间值组成的 %矩阵 y=0; %对y初始化 d=diag(diag(a)); %按雅可比迭代标准形 形式取主对角元素作为矩阵D u=-triu(a,1); %取上三角矩阵u l=-tril(a,-1); %取下三角矩阵l bj=d^-1*(l+u); fj=d^-1*b; x=[x0,zeros(20,m-1)]; %初始化x,其中x1=x0,即 初始值 for k=1:m %人为规定迭代次 数,防止不收敛迭代导致死循环 x(:,k+1)=bj*x(:,k)+fj; %jacobi迭代 if norm(x(:,k+1)-x(:,k),inf)<e
数学建模线性方程组的数值解法
直接法 经过有限次算术运算求出精确解(实际上 由 于 有 舍 入 误 差 只 能 得 到 近 似 解 ) ---- 高 斯 (Gauss)消元法及与它密切相关的矩阵LU分解 迭代法 从初始解出发,根据设计好的步骤用逐次 求出的近似解逼近精确解 ---- 雅可比(Jacobi) 迭代法和高斯—塞德尔(Gauss—Seidel)迭代法
(k )
0.1x1
( k 1)
0.3x2
( k 1)
1.4
Gauss-Seideil迭代公式 Dx ( k 1) Lx ( k 1) Ux ( k ) b
用它作除数会导致舍入误 差的很大增加 解决 办法 选
(k ) aik
(i k , n) 最大的一个(列主元)
将列主元所在行与第k行交换后, 再按上面的 高斯消元法进行下去,称为列主元消元法。
直接法 - 高斯消元法的矩阵表示
高斯消元法的第一次消元
a11 x1 a12 x2 a1n xn b1 a21 x1 a22 x2 a2 n xn b2 an1 x1 an 2 x2 ann xn bn
数值解法(迭代解法)的收敛性
实验5的主要内容
1. 两类数值解法: 直接方法;迭代方法
2. 超定线性方程组的最小二乘解 3. 线性方程组数值解法的MATLAB实现 4. 实际问题中方程组的数值解
线性方程组的一般形式、两类解法
a11 x1 a12 x 2 a1n x n b1 a 21 x1 a 22 x 2 a 2 n x n b2 a n1 x1 a n 2 x 2 a nn x n bn
大学数学实验
Mathematical Experiments 实验5 线性代数方程组的数值解法
代数方程的求解
10.217253727895446083582447731953 - 4.7227311648148859415297821017854*i 4.2177563835168647657970523110679*i + 16.889121018662801764934219025612 y= 1.6407253627272400391783345506916 - 5.515339855176732792622418648899*i 3.5094002752389020636845577121798 - 6.9732883324603664143501389722123*i 7.8113869374516535777173651228485*i + 0.84987436203385789713710773712855 6.9732883324603664143501389722123*i + 3.5094002752389020636845577121798 5.515339855176732792622418648899*i + 1.6407253627272400391783345506916 0.84987436203385789713710773712855 - 7.8113869374516535777173651228485*i z= 0.79260869036184685109263654711353*i + 3.1420209093773138772392177173551 - 4.2101933313343605862852373681236*i - 0.069692195347320881834557621281398 - 3.5936305539347888119203128117806*i - 2.7389953806966596620713267627403 4.2101933313343605862852373681236*i - 0.069692195347320881834557621281398 3.1420209093773138772392177173551 - 0.79260869036184685109263654711353*i 3.5936305539347888119203128117806*i - 2.7389953806966596620713267627403
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的实验内容MATLAB
2、通过实例练习用(非)线性方程组求解实际问题.
实验软件1、用Matlab 软件掌握(非)线性方程组的解
法,对迭代法的收敛性和解的稳定性作初步分析.
1、向量和矩阵的范数.
2、解线性方程组的方法介绍.
3、解非线性方程(组)的方法介绍.
2)、条件数的性质:
a) 1)(≥A cond ;
b) 对于R ∈≠)0(α,)()(A cond A cond =α; c) 对于正交阵n n R Q ⨯∈,
)()()(A cond AQ cond QA cond ==;
讨论如下表示含有n 个未知数、由
n 个方程构成的线性方程组:
)
1(2211222221211
1212111⎪⎪
⎩⎪⎪⎨
⎧=+++=+++=+++n
n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a
从(4)式最后一个方程解出n x ,代入它上面的一个方程解出1-n x ,并如此进行下去,即可依次将1,,x x n 全部解
出,这样在),,2,1(0)
(n k a k kk =≠的假设下,由上而下的
消元由下而上的回代,就构成了方程组的消元法,称高斯消元法。
高斯消元法的MATLAB程序
%顺序gauss消去法,gauss函数function [A,u]=gauss(a,n)
for k=1:n-1
%消去过程
for i=k+1:n
for j=k+1:n+1
%如果a(k,k)=0,则不能消去
if abs(a(k,k))>1e-6
%计算第k步的增广矩阵
a(i,j)=a(i,j)-a(i,k)/a(k,k)*a(k,j);
else
%a(k,k)=0,顺序gauss消去失败
disp('顺序gauss消去失败');
pause;
exit;
end
end
end
end
%回代过程
x(n)=a(n,n+1)/a(n,n);
for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+a(i,j)*x(j);
end
x(i)=(a(i,n+1)-s)/a(i,i);
end
%返回gauss消去后的增广矩阵A=triu(a);
%返回方程组的解
u=x;
例1 用高斯消元法求解方程组:
⎪⎪⎪⎩⎪⎪⎪⎨⎧=+++=+++=++++=+++=++++635219
6741483215
7425421542154321542154321x x x x x x x x x x x x x x x x x x x x x x
列主元素消元法的MATLAB程序%列主元gauss消去函数function [A,u]=gauss(a,n)
%消去过程
for k=1:n-1
%选主元
c=0;
for q=k:n
if abs(a(q,k))>c
c=a(q,k);
l=q;
end
end
%如果主元为0,则矩阵A不可逆
if abs(c)<1e-10
disp('error');
pause;
exit;
end
%如果l不等于k,则交换第l行和第k行if l~=k
for q=k:n+1
temp=a(k,q);
a(k,q)=a(l.q);
a(l,q)=temp;
end
end
%计算第k步的元素值
for i=k+1:n
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)/a(k,k)*a(k,j);
end
end
end
%回代过程
x(n)=a(n,n+1)/a(n,n); for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+a(i,j)*x(j); end
x(i)=(a(i,n+1)-s)/a(i,i); end
%返回列主元gauss消去后的增广矩阵
A=triu(a);
%返回方程组的解
u=x;
例2 用列主元素消去法重新解例1
二、迭代法
1、迭代法的总体思想:
1)、迭代公式的构造:对线性方程组b Ax =,可以构造一个迭代公式 f BX X
k k +=++)1()1(,给出)0(X 由迭代公式的{})(k X ,如果{})(k X 收敛于*X ,那么*X 就是原方程组的解。
2)、矩阵的分解:设线性方程组为b Ax =,其中,A 非奇异,则可以把A 矩阵分解:
U L D A --=
],,,[2211nn a a a diag D =
⎪⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛-=000
032
1323121
n n n a a a a a a L ⎪⎪⎪⎪⎪
⎪⎭⎫ ⎝
⎛-=-0000,122311312n n n n a a a a a a U
Jacobian迭代的MATLAB程序
function [x,sp]=jac(a,b,n,x1)
%误差
e=ones(n,1);
%迭代的解向量
x2=zeros(n,1);
%迭代的次数
k=0;
%当误差没有满足要求时继续迭代
while norm(e,2)>1e-6
%每隔5步显示迭代结果
if (rem(k,5)==0)
str=sprintf('X%d= %g %g %g %g\n',k,x1);
disp(str)
end
k=k+1;
%计算x2(i)
for i=1:n
s=0;
for j=1:n
s=s+a(i,j)*x1(j);
end
x2(i)=(b(i)-s)/a(i,i)+x1(i); end
%计算误差向量
e=x2-x1;
%把x2作为新的迭代初值x1=x2;
end
%返回迭代步数
sp=k;
%返回迭代值
x=x2;
例3、利用Jacobian 迭代法求解方程组:
⎪⎪⎩⎪⎪⎨⎧=+=++=++=+8
4251536221
34232143231x x x x x x x x x x
注:实际上在计算过程的第k 步,往往先计算)()(k x F 和)()(k x F ',再解方程组)()()()()(k k k x F x x
F -=∆'得到)(k x ∆后,令)()()1(k k k x x x ∆+=+即可。
例6 用牛顿迭代法解非线性方程组:
⎪⎩⎪⎨⎧=+-+=-+=+++-030207102322221
323221322121x x x x x x x x x x x x
3 、迭代过程混沌
波音公司飞机最佳定价策略
全球最大的飞机制造商------波音公司自1955年推出波音707开始,成功地开发了一系列的喷气式客机。
问题:讨论该公司对一种新型客机最优定价策略的数学模型。
一、问题分析:
定价策略涉及到诸多因素,这里考虑一下主要因素:
价格、竞争对手的行为、出售客机的数量、波音公司的客机制造量、制造成本、波音公司的市场占有率等等因素。
二、基本假设:
价格记为p,根据实际情况,对于民航飞机制造商,能够与波音公司抗衡的竞争对手只有一个,因此他们在价格上可
以达成一致,具体假设如下:
1、型号:为了研究方便,假设只有一种型号飞机;
2、销售量:其销售量只受价格p的影响。
预测以此价格出售,该型号飞机全球销售量为N。
N应该受到诸多因素影响,假设其中价格是最主要的因素。
根据市场销售的历史规律和需求曲线,假设该公司销售部门预测得到:=p
p
N
=
N
p
+
-
125
78
655
(2+
)
3、市场占有率:既然在价格上达成一致,即价格的变化是同步的,因此不同的定价不会影响波音公司的市场占有率,因此市场占有率是常数,记为h;。