19476-数学建模-代数方程组的解法实验
- 格式:pps
- 大小:735.50 KB
- 文档页数:52
数学代数方程组计算方程组是数学中重要的研究对象之一,它描述了数学模型中的关系和约束。
在代数学中,方程组的求解一直是一个重要的课题。
本文将介绍一些常见的数学代数方程组计算方法,以帮助读者更好地理解和解决方程组求解问题。
一、高斯消元法高斯消元法是求解线性方程组的经典方法之一。
其基本思想是通过消元和回代的方式,将方程组化为上三角矩阵,然后通过回代过程求解未知数的值。
举例来说,考虑一个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```可以通过消元法求解。
线性代数方程组的数值解法【实验目的】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。
代数方程组的解法代数方程组是初中数学中的重要内容,也是数学学习的基础。
掌握代数方程组的解法,对于解决实际问题和提高数学能力都有着重要的作用。
本文将介绍几种常见的代数方程组的解法,希望能对中学生和他们的父母有所帮助。
一、一元一次方程组的解法一元一次方程组是由一元一次方程构成的方程组,通常形式为:\[\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 分解法。
实验目的实验内容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;。