实验一用matlab求解线性方程组

合集下载

MATLAB计算方法3解线性方程组计算解法

MATLAB计算方法3解线性方程组计算解法

MATLAB计算方法3解线性方程组计算解法线性方程组是数学中的一个重要问题,解线性方程组是计算数学中的一个基本计算,有着广泛的应用。

MATLAB是一种功能强大的数学软件,提供了多种解线性方程组的计算方法。

本文将介绍MATLAB中的三种解线性方程组的计算方法。

第一种方法是用MATLAB函数“linsolve”解线性方程组。

该函数使用高斯消元法和LU分解法求解线性方程组,可以处理单个方程组以及多个方程组的情况。

使用该函数的语法如下:X = linsolve(A, B)其中A是系数矩阵,B是常数向量,X是解向量。

该函数会根据A的形式自动选择求解方法,返回解向量X。

下面是一个使用“linsolve”函数解线性方程组的例子:A=[12;34];B=[5;6];X = linsolve(A, B);上述代码中,A是一个2×2的系数矩阵,B是一个2×1的常数向量,X是一个2×1的解向量。

运行代码后,X的值为[-4.0000;4.5000]。

第二种方法是用MATLAB函数“inv”求解逆矩阵来解线性方程组。

当系数矩阵A非奇异(可逆)时,可以使用逆矩阵求解线性方程组。

使用“inv”函数的语法如下:X = inv(A) * B其中A是系数矩阵,B是常数向量,X是解向量。

该方法先计算A的逆矩阵,然后将逆矩阵与B相乘得到解向量X。

下面是一个使用“inv”函数解线性方程组的例子:A=[12;34];B=[5;6];X = inv(A) * B;上述代码中,A是一个2×2的系数矩阵,B是一个2×1的常数向量,X是一个2×1的解向量。

运行代码后,X的值为[-4.0000;4.5000]。

第三种方法是用MATLAB函数“mldivide”(或“\”)求解线性方程组。

该函数使用最小二乘法求解非方阵的线性方程组。

使用“mldivide”函数的语法如下:X=A\B其中A是系数矩阵,B是常数向量,X是解向量。

matlab 实验教程 实验一

matlab 实验教程 实验一

MATLAB语言及其应用实验教程实验一实验目的:1.熟悉MATLAB的界面,菜单,会使用DEMO,学会使用帮助(help)。

2.学习MATLAB的基本语法实验内容:1.打开MATLAB,点击各个菜单以了解各个子菜单项。

2.更改当前路径,在指定路径下保存所作的实验。

实验具体步骤:如图所示,在D盘根目录下建立“MATLAB实验”文件夹,并在此文件夹下以各自的学号建立子文件夹。

如图所示,点击工具栏上“Current Directory”栏的浏览按钮。

选择刚刚建立的以各自学号命名的文件夹,“Current Directory”栏显示如下路径格式。

注意!以后所有的实验均保存在此目录中。

3.学习打开和关闭命令窗口(command window),工作空间(workspace)和命令历史窗口(command history)。

实验具体步骤:单击命令窗口右上角的“X”标志,关闭命令窗口;在Desktop菜单下选择“Command window”,打开命令窗口;单击工作空间窗口右上角的“X”标志,关闭工作空间;在Desktop菜单下选择“Workspace”,打开工作空间;单击命令历史窗口右上角的“X”标志,关闭命令历史窗口;在Desktop菜单下选择“Command history”,打开命令历史窗口。

4.练习变量的赋值,包括向量赋值,矩阵赋值以及复数的赋值。

实验具体步骤:变量赋值>> a=100a =100>> b=0.1b =0.1000向量赋值>> a=1:1:10a =1 2 3 4 5 6 7 8 9 10>> b=1:2:10b =1 3 5 7 9矩阵赋值>> a=[1 2 3;4 5 6;7 8 9]a =1 2 34 5 67 8 9复数赋值>> c=3+5.2ic =3.0000 + 5.2000i>> z=[1+2i,3+4i;5+6i,7+8i]z =1.0000 +2.0000i3.0000 +4.0000i5.0000 +6.0000i7.0000 +8.0000i5.用变量检查命令who和whos检查工作空间中的变量。

利用Matlab进行线性代数问题求解的方法与案例

利用Matlab进行线性代数问题求解的方法与案例

利用Matlab进行线性代数问题求解的方法与案例引言线性代数是数学的一个重要分支,广泛应用于工程、物理、计算机科学等领域。

而Matlab作为一种功能强大的数值计算软件,提供了各种实用的工具和函数,可以方便地解决线性代数问题。

本文将介绍一些常用的线性代数问题求解方法,并通过具体的案例来展示Matlab在实际应用中的效果。

一、线性方程组的求解线性方程组是线性代数中最基础的问题之一。

Matlab提供了多种求解线性方程组的函数,如“backslash”操作符(\)和“linsolve”函数等。

下面通过一个实例来说明Matlab的线性方程组求解功能。

案例:假设有以下线性方程组需要求解:2x + 3y - 4z = 53x - 2y + z = 8x + 5y - 3z = 7在Matlab中输入以下代码:A = [2 3 -4; 3 -2 1; 1 5 -3];b = [5; 8; 7];x = A\b;通过以上代码,我们可以得到线性方程组的解x=[1; -2; 3]。

这表明在满足以上方程组的条件下,x=1,y=-2,z=3。

可以看出,Matlab在求解线性方程组时,使用简单且高效。

二、矩阵的特征值和特征向量求解矩阵的特征值和特征向量也是线性代数中的重要概念。

利用特征值和特征向量可以得到矩阵的许多性质和信息。

在Matlab中,我们可以通过“eig”函数来求解矩阵的特征值和特征向量。

案例:假设有一个2x2矩阵A,需要求解其特征值和特征向量。

在Matlab中输入以下代码:A = [2 3; 1 4];[V, D] = eig(A);通过以上代码,我们可以得到矩阵A的特征向量矩阵V和特征值矩阵D。

具体结果如下:特征向量矩阵V = [0.8507 -0.5257; 0.5257 0.8507]特征值矩阵D = [1.5858 0; 0 4.4142]由结果可知,矩阵A的特征向量矩阵V和特征值矩阵D可以提供有关该矩阵的很多信息,如相关线性变换、对称性等。

用MATLAB做线性代数实验

用MATLAB做线性代数实验

【2】参数方程解的判别 【注意】 :含有参数情况的线性方程组的解的情况讨论,不能直接使用 Matlab 中 的函数:rank,rref,因为 Matlab 会默认这些参数及其表达式不等于零。因此,应 该编写独立的过程加以讨论。 试就参数 s 的各种情况,讨论下述线性方程组的解的情况:
sx y z 1 x sy z s 。 2 x y sz s
p1 ( x ) q( x ) p2 ( x ) r ( x ) , d (r ( x )) d ( p2 ( x ))
例如,求多项式 f ( x ) x 3 6 x 2 11 x 6 , g( x ) x 5 2 x 2 1 的最大公因式和最小公倍 式。 p=[1 -6 11 -6]; q=[1 0 0 -2 0 1]; [q1,r1]=deconv(q,p) [q2,r2]=deconv(p,r1(4:6)) %注意保证第一个分量不能为零 [q3,r3]=deconv(r1(4:6),r2(3:4))
x2 x3 2 x2 3 x 2
分解为最简分式之和的程序如下:
-0.5000 - 1.3229i -1.0000 r = [] 结果表示出来即是:
f ( x)
如果是在实数范围内分解:
0.25 0.4725 i x 0.51.3229 i

0.25 0.4725 i x 0.51.3229 i
用 MATLAB 做线性代数实验
1. 多项式运算
【1】表示方法与根 表示方法:降幂,向量形式. 例如, p( x ) 2 x x 3 x5 被表示为向量 p=[-1 0 1 0 2 0] 而不是 p=[0 2 0 1 0 -1] 或者 p=[2 1 -1]. 相关 MATLAB 函数 函数名 含义 %注意保证第一个分量不能为零

利用MATLAB求线性方程组

利用MATLAB求线性方程组

《MATLAB语言》课成论文利用MATLAB求线性方程组姓名:郭亚兰学号:12010245331专业:通信工程班级:2010级通信工程一班指导老师:汤全武学院:物电学院完成日期:2011年12月17日利用MATLAB求解线性方程组(郭亚兰 12010245331 2010 级通信一班)【摘要】在高等数学及线性代数中涉及许多的数值问题,未知数的求解,微积分,不定积分,线性方程组的求解等对其手工求解都是比较复杂,而MATLAB语言正是处理线性方程组的求解的很好工具。

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。

因而,线性代数被广泛地应用于抽象代数和泛函分析中;由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。

因而,线性代数被广泛地应用于抽象代数和泛函分析中;由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

线性代数是讨论矩阵理论、与矩阵结合的有限维向量空间及其线性变换理论的一门学科。

【关键字】线性代数MATLAB语言秩矩阵解一、基本概念1、N级行列式A:A等于所有取自不同性不同列的n个元素的积的代数和。

2、矩阵B:矩阵的概念是很直观的,可以说是一张表。

3、线性无关:一向量组(a1,a2,…,an)不线性相关,既没有不全为零的数k1,k2,………kn使得:k1*a1+k2*a2+………+kn*an=04、秩:向量组的极在线性无关组所含向量的个数成为这个向量组的秩。

5、矩阵B的秩:行秩,指矩阵的行向量组的秩;列秩类似。

记:R(B)6、一般线性方程组是指形式:⎪⎪⎩⎪⎪⎨⎧=+++=+++=*+++ssn s s n n n n b a x a x a b x a x a x a b x a x a x n 22112222212111212111x ********a 二、基本理论三种基本变换:1,用一非零的数乘某一方程;2,把一个方程的倍数加到另一方程;3,互换两个方程的位置。

基于Matlab的解线性方程组的几种迭代法的实现及比较

基于Matlab的解线性方程组的几种迭代法的实现及比较

基于Matlab的解线性方程组的几种迭代法的实现及比较线性方程组的解法有很多种,其中一类常用的方法是迭代法。

迭代法根据一个初值逐步逼近方程组的解,在每一次迭代中利用现有的信息产生新的近似值,并不断地修正。

下面介绍基于Matlab的三种迭代法:雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法,并进行比较。

1. 雅可比迭代法雅可比迭代法是迭代法中最简单的一种方法。

对于线性方程组Ax=b,雅可比迭代法的迭代公式为:x_{i+1}(j)=1/a_{jj}(b_j-\\sum_{k=1,k\eq j}^n a_{jk}x_i(k))其中,i表示迭代次数,j表示未知数的下标,x_i表示第i次迭代的近似解,a_{jk}表示系数矩阵A的第j行第k列元素,b_j 表示方程组的常数项第j项。

在Matlab中,可以使用以下代码实现雅可比迭代:function [x,flag]=jacobi(A,b,X0,tol,kmax)n=length(b);x=X0;for k=1:kmaxfor i=1:nx(i)=(b(i)-A(i,:)*x+A(i,i)*x(i))/A(i,i);endif norm(A*x-b)<tolflag=1;returnendendflag=0;return其中,参数A为系数矩阵,b为常数项列向量,X0为初值列向量,tol为迭代误差容许值(默认为1e-6),kmax为最大迭代次数(默认为1000)。

函数返回值x为近似解列向量,flag表示是否满足容许误差要求。

2. 高斯-赛德尔迭代法高斯-赛德尔迭代法是雅可比迭代法的改进。

其基本思想是,每次迭代时,利用已经求出的新解中的信息来更新其他未知数的值。

迭代公式为:x_{i+1}(j)=(1/a_{jj})(b_j-\\sum_{k=1}^{j-1}a_{jk}x_{i+1}(k)-\\sum_{k=j+1}^n a_{jk}x_i(k))与雅可比迭代法相比,高斯-赛德尔迭代法的每一次迭代都利用了前面已求得的近似解,因此可以更快地收敛。

matlab中快速求解xa=b的方法

matlab中快速求解xa=b的方法

matlab中快速求解xa=b的方法在Matlab中,要快速求解线性方程组xa=b,可以使用以下几种方法:1. 直接求解法(\):直接使用斜杠操作符(\)可以求解线性方程组。

例如,对于方程组xa=b,可以直接使用x = A\b来解决,其中A是系数矩阵,b是常数向量。

这种方法使用了高效的LU分解算法,并且能够自动适应方程组的类型(如稀疏矩阵或密集矩阵),因此是一种快速求解线性方程组的常用方法。

2. QR分解法:QR分解是一种将矩阵分解为正交矩阵和上三角矩阵的方法。

在Matlab中,可以使用qr函数对系数矩阵进行QR分解,然后使用这个分解求解线性方程组。

具体而言,可以使用[q,r] = qr(A)将系数矩阵A分解为正交矩阵q和上三角矩阵r,然后使用x = r\(q'*b)求解方程组。

这种方法通常适用于方程组的系数矩阵具有较大的条件数或者方程组数目较多的情况。

3. Cholesky分解法:如果线性方程组的系数矩阵是对称正定的,那么可以使用Cholesky分解来求解方程组。

在Matlab中,可以使用chol函数对系数矩阵进行Cholesky分解,然后使用这个分解求解线性方程组。

具体而言,可以使用R = chol(A)将系数矩阵A分解为上三角矩阵R,然后使用x = R'\(R\b)求解方程组。

Cholesky分解法通常适用于系数矩阵具有良好的性质(如对称正定)的情况。

4. 迭代法:如果线性方程组的系数矩阵是稀疏的,那么可以使用迭代法来求解方程组。

迭代法的基本思想是通过迭代改进解的逼近值。

在Matlab中,可以使用pcg函数(预处理共轭梯度法)或者bicg函数(双共轭梯度法)来求解稀疏线性方程组。

这些函数需要提供一个预处理矩阵,用于加速迭代过程。

预处理矩阵可以根据具体问题进行选择,常见的预处理方法包括不完全LU分解(ilu)和代数多重网格(amg)等。

通过使用上述方法,可以在Matlab中快速求解线性方程组xa=b。

利用matlab解线性方程组

利用matlab解线性方程组

数值计算实验——解线性方程组西南交通大学2012级茅7班20123257 陈鼎摘要本报告主要介绍了基于求解线性方程组的高斯消元法和列主消元法两种数值分析方法的算法原理及实现方法。

运用matlab数学软件辅助求解。

实验内容1.编写用高斯消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证。

2.编写用列主消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证。

给定方程组如下:①0.325x1+2.564x2+3.888x3+5x4=1.521②-1.548x1+3.648x2+4.214x3-4.214x4=2.614③-2.154x1+1.647x2+5.364x3+x4=3.978④0x1+2.141x2-2.354x3-2x4=4.214A.高斯消元法一、算法介绍高斯消元法是一种规则化的加减消元法。

基本思想是通过逐次消元计算把需要求解的线性方程组转化成为上三角方程组,即把现形方程组的系数矩阵转化为上三角矩阵,从而使一般线性方程组的求解转化为等价的上三角方程组的求解。

二、matlab程序function [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica>0,disp(‘因为RA~=RB,所以此方程组无解.')returnendif RA==RBif RA==ndisp(‘因为RA=RB=n,所以此方程组有唯一解.')X=zeros(n,1); C=zeros(1,n+1);for p= 1:n-1for k=p+1:nm= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp(‘因为RA=RB<n,所以此方程组有无穷多解.')endend三、实验过程与结果输入的量:系数矩阵A和常系数向量b;输出的量:系数矩阵A和增广矩阵B的秩RA、RB,方程中未知量的个数n和有关方程组解X及其解的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1.1 用matlab 求解线性方程组
第一节 线性方程组的求解 一、齐次方程组的求解
rref (A ) %将矩阵A 化为阶梯形的最简式
null (A ) %求满足AX =0的解空间的一组基,即齐次线性方程组的基
础解系
【例1】 求下列齐次线性方程组的一个基础解系,并写出通解:
我们可以通过两种方法来解: 解法1:
>> A=[1 -1 1 -1;1 -1 -1 1;1 -1 -2 2]; >> rref(A) 执行后可得结果: ans=
1 -1 0 0 0 0 -1 1 0 0 0 0 由最简行阶梯型矩阵,得化简后的方程
⎪⎩⎪
⎨⎧=+--=+--=-+-0
22004321
43214321x x x x x x x x x x x x
取x2,x4为自由未知量,扩充方程组为

提取自由未知量系数形成的列向量为基础解系,记
所以齐次方程组的通解为
解法2: clear
A=[1 -1 1 -1;1 -1 -1 1;1 -1 -2 2];
B=null(A, 'r') % help null 看看加个‘r’是什么作用,
若去掉r ,是什么结果?
执行后可得结果: B=
1 0 1 0 0 1 0 1
⎩⎨
⎧=-=-0
04321x x x x ⎪⎪⎩⎪⎪⎨
⎧====4
4432221x x x x x x x x ⎥⎥⎥
⎥⎦⎤
⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡1100001142
4321x x x x x x ,
00111⎥⎥⎥⎥⎦

⎢⎢⎢⎢⎣⎡=ε,
11002⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε2
211εεk k x +=
易见,可直接得基础解系
所以齐次方程组的通解为
二、非齐次线性方程组的求解 Matlab 命令的基本格式:
X =A\b %系数阵A 满秩时,用左除法求线性方程组AX =b 的解
注意:A/B 即为AB -1, 而A\B 即为A -1B.
C =[A,b];
D =rref(C) % 求线性方程组AX =b 的特解,即D 的最后一列元素
【例2】 求下列非齐次线性方程组的解:
,
00111⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε,
11002⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=ε⎪⎪⎪⎩⎪
⎪⎪⎨⎧=+=++=++=++=+1
50
65065065165545
4354332121x x x x x x x x x x x x x 2
211εεk k x +=
解: clear
A=[5 6 0 0 0;1 5 6 0 0;0 1 5 6 0;0 0 1 5 6;0 0 0 1 5]; b=[1;0;0;0;1];
format rational %采用有理数近似输出格式,
比较format short 看看
x=A\b
执行后可得所求方程组的解. 作业:
【第一题】 求下列非齐次线性方程组的通解.
A=[1 2 3 1;1 4 6 2;2 9 8 3;3 7 7 2] B=[3;2;7;12] format rational x=A\B x =
⎪⎪⎩⎪⎪⎨
⎧=+++=+++=+++=+++12
27737389222643324321432143214321x x x x x x x x x x x x x x x x
4
2/3
1/2684838239393950
-7/3
【第二题】计算工资问题
一个木工,一个电工,一个油漆工,三个人相互同意彼此装修他们自己的房子。

在装修之前,他们达成如下协议:
(1)每人总共工作十天(包括给自己家干活在内);
(2)每人的日工资根据一般的市价在60~80元之间;
(3)每人的日工资数应使得每人的总收入与总支出相等。

下为他们协商后制定出的工作天数分配方案:
解:设在木工、电工和油漆工每天的工资数分别为x,y和z;
依题意得
8x=y+6z
5y=4x+z
7z=4x+4y
即为8x-y-6z=0
4x-5y+z=0
4x+4y-7z=0
clear
A=[8 -1 -6;4 -5 1 ;4 4 -7];
B=null(A, 'r')
B =
0.8611
0.8889
1.0000
实验1.2 M ATLAB程式设计与应用
-----二维绘图部分
基本xy平面绘图命令
M ATLAB不但擅长于矩阵相关的数值运算,也适合用在各种科学的可视化表示(Scientific Visualization)。

本节将介绍MATLAB基本xy平面的一些绘图命令。

1.Plot作图 plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义
曲线上每一点的x及y坐标。

下例可画出一条正弦曲线:
close all; %关闭所有的图形视窗
x=linspace(0, 2*pi, 100); % 100个点的x坐标
y=sin(x); % 对应的y坐标
plot(x,y);
若要画出多条曲线,只需将坐标对依次放入plot函数即可:plot(x, sin(x), x, cos(x))
若要改变颜色,在坐标对后面加上相关字串即可:
plot(x, sin(x), 'c', x, cos(x), 'g')
若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*')
图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:axis([0, 6, -1.2, 1.2]);
对上述图形还可以加上各种注解与处理:
xlabel('Input Value'); % x轴注解
ylabel('Function Value'); % y轴注解
title('Two Trigonometric Functions'); % 图形标题
legend('y = sin(x)','y = cos(x)'); % 图形注解
grid on; % 显示格线
1
2
3
4
5
6
Input Value
F u n c t i o n V a l u e
Two Trigonometric Functions
此外,我们可用subplot 来同时画出数个小图形于同一个视窗之中:
其语法为 subplot(m,n,p),其中 m , n 代表绘图成 m * n 个子图,m 表示在 y 方向有 m 个图, n 表示在 x 方向有 n 个图,p 是代表第几个子图。

subplot(2,2,1); plot(x, sin(x)); subplot(2,2,2); plot(x, cos(x)); subplot(2,2,3); plot(x, sinh(x)); subplot(2,2,4); plot(x, cosh(x));
02468
02468
实验材料下载地址:
ftp://172. 21.73.244
用户名:kly
密码:kly
数学\07级\09专。

相关文档
最新文档