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) )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;。

相关文档
最新文档