MATLAB 第4章 MATLAB的数值计算功能
- 格式:doc
- 大小:227.00 KB
- 文档页数:42
m a t l a b入门经典教程--第四章数值计算-CAL-FENGHAI.-(YICAI)-Company One1第四章数值计算4.1引言本章将花较大的篇幅讨论若干常见数值计算问题:线性分析、一元和多元函数分析、微积分、数据分析、以及常微分方程(初值和边值问题)求解等。
但与一般数值计算教科书不同,本章的讨论重点是:如何利用现有的世界顶级数值计算资源MATLAB。
至于数学描述,本章将遵循“最低限度自封闭”的原则处理,以最简明的方式阐述理论数学、数值数学和MATLAB计算指令之间的内在联系及区别。
对于那些熟悉其他高级语言(如FORTRAN,Pascal,C++)的读者来说,通过本章,MATLAB卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的眉眼舒展。
对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。
对于那些熟悉MATLAB基本指令的读者来说,通过本章,围绕基本数值问题展开的内容将使他们体会到各别指令的运用场合和内在关系,获得综合运用不同指令解决具体问题的思路和借鉴。
由于MATLAB的基本运算单元是数组,所以本章内容将从矩阵分析、线性代数的数值计算开始。
然后再介绍函数零点、极值的求取,数值微积分,数理统计和分析,拟合和插值,Fourier分析,和一般常微分方程初值、边值问题。
本章的最后讨论稀疏矩阵的处理,因为这只有在大型问题中,才须特别处理。
从总体上讲,本章各节之间没有依从关系,即读者没有必要从头到尾系统阅读本章内容。
读者完全可以根据需要阅读有关节次。
除特别说明外,每节中的例题指令是独立完整的,因此读者可以很容易地在自己机器上实践。
MATLAB从版升级到版后,本章内容的变化如下:MATLAB从版起,其矩阵和特征值计算指令不再以LINPACK和EISPACK库为基础,而建筑在计算速度更快、运行更可靠的LAPACK和ARPACK程序库的新基础上。
如何使用MATLAB进行数值计算使用MATLAB进行数值计算一、引言数值计算是现代科学与工程领域中不可或缺的一部分,它能够解决许多实际问题,包括求解方程、优化问题和模拟实验等。
而MATLAB作为一种功能强大的数值计算软件,被广泛应用于各个领域。
本文将介绍如何使用MATLAB进行数值计算,并结合实例进行说明。
二、MATLAB基础首先,我们需要了解MATLAB的基本操作和语法,以便能够熟练运用。
MATLAB使用矩阵和数组来存储和处理数据,因此,熟悉矩阵和数组操作是非常重要的。
MATLAB中的矩阵和数组是通过方括号来定义的,例如:A = [1 2 3; 4 5 6; 7 8 9]表示一个3x3的矩阵A,其中每个元素由空格或分号隔开。
我们可以使用括号或索引来访问矩阵中的元素。
例如,要访问矩阵A的第二行第三列的元素,可以使用A(2,3)。
MATLAB提供了大量内置的数学函数,包括算术运算、三角函数、指数和对数函数等。
这些函数可以直接应用于矩阵和数组,简化了数值计算的过程。
三、方程求解方程求解是数值计算中的一个重要任务,MATLAB提供了多种方法来求解方程,包括代数方法和数值方法。
1. 代数方法对于一些简单的方程,例如一元一次方程或二次方程,可以直接使用MATLAB内置的解方程函数进行求解。
例如,对于一元一次方程ax + b = 0,可以使用solve函数来求解。
代码示例:syms x;eqn = a*x + b == 0;sol = solve(eqn, x);其中,syms x;指定x为符号变量,eqn为方程表达式,sol为方程的解。
2. 数值方法对于一些复杂的方程,无法用解析方法求解。
这时,可以使用数值方法来近似求解。
MATLAB提供了多种数值求解方法,包括二分法、牛顿法和割线法等。
这些方法可以通过迭代逼近的方式求解方程的根。
代码示例:f = @(x) x^2 - 4;x0 = 2;x = fzero(f, x0);其中,f为方程的表达式,x0为初始猜测值,x为方程的根。
MATLAB数值计算功能下面将详细介绍MATLAB数值计算功能的一些主要方面:1. 矩阵运算和线性代数:MATLAB具有强大的矩阵操作功能,可以直接对矩阵进行加减乘除、求逆矩阵、求特征值等运算。
MATLAB中的线性方程组求解函数(如`linsolve`和`inv`)可以更轻松地解决各种线性代数问题。
2. 数值积分和微分:MATLAB提供了多种数值积分和微分函数,用于求解一元和多元函数的定积分、不定积分、数值微分和数值求导。
例如,可以使用`integral`函数计算函数的定积分,并使用`diff`函数计算函数的导数或`gradient`函数计算梯度。
3. 方程求解:MATLAB提供了一系列函数,用于解决非线性方程和代数方程组。
这些函数包括`fsolve`(用于求解非线性方程),`roots`(用于求解多项式方程的根)和`solve`(用于求解代数方程组)等。
4. 曲线拟合和数据拟合:MATLAB提供了多个函数用于曲线拟合和数据拟合,包括`polyfit`(多项式拟合),`lsqcurvefit`(非线性最小二乘曲线拟合),`interp1`(一维插值)和`griddata`(多维数据插值)等。
这些函数可以帮助用户找到数据之间的模式和关系。
5. 常微分方程(ODE)求解:MATLAB提供了用于求解常微分方程组(ODE)的函数,既可以用传统的数值方法求解,也可以用符号计算求解。
用户可以使用`ode45`、`ode23`或`ode15s`等函数来求解初值问题或边界值问题。
6. 线性最小二乘拟合:MATLAB中的`lsqnonlin`函数可以用于线性最小二乘问题的求解,包括曲线拟合、数据拟合、参数估计等。
用户可以使用该函数来找到使得拟合曲线和观测数据之间残差最小的参数。
7. 数值优化:MATLAB包含一系列优化函数,可以求解常规优化问题、无约束优化问题、约束优化问题等。
用户可以使用函数`fminsearch`、`fminunc`和`fmincon`等来找到函数的最小值或最大值。
MATLAB数值计算功能
MATLAB是一种非常强大的数值计算软件,被广泛应用于科学计算、
工程计算和数据分析等领域。
它提供了丰富的数值计算功能,包括基本的
数学运算、线性代数、数值积分、微分方程求解、优化算法等。
下面将详
细介绍一些常见的数值计算功能。
1.数学运算:
MATLAB提供了丰富的数学函数,可以进行各种基本的算术运算,如
加减乘除、幂运算、取模运算等。
同时,它还提供了一些高级的数学函数,如三角函数、指数函数、对数函数等。
通过这些函数,用户可以进行各种
复杂的数学运算。
2.线性代数:
3.数值积分:
4.微分方程求解:
5.优化算法:
MATLAB提供了各种优化算法,如线性规划、非线性规划、整数规划、二次规划等。
用户可以通过设定目标函数和约束条件,利用MATLAB的优
化函数寻找最佳的解。
这对于优化问题的求解非常有用,如工程设计、生
产调度等。
6.统计分析:
7.数据可视化:
总之,MATLAB的数值计算功能非常丰富,可以满足各种数学计算和数据分析的需求。
它不仅提供了各种基本的数学运算功能,还提供了高级的线性代数、数值积分、微分方程求解、优化算法和统计分析等功能。
同时,其强大的数据可视化功能也是很多用户选择MATLAB作为数值计算工具的重要原因之一。
数值分析第四章外推法计算数值微分MATLAB计算实验报告数值分析MATLAB计算实验报告姓名班级学号⼀、实验名称⽤MATLAB编程实现数值微分的外推法计算。
⼆、实验⽬的1.掌握数值微分和定义和外推法的计算过程;2.了解数值微分外推法的计算⽅法并且编写出与其算法对应的MATLAB程序代码;3.体会利⽤MATLAB软件进⾏数值计算。
三、实验内容⽤外推法计算f(x)=x2e?x在x=0.5的导数。
四、算法描述1.命名函数。
2.如果输⼊未知数少于四个,默认精度10^-33.描述T表矩阵坐标4.依次赋值计算 T表第⼀列5.根据数值微分计算公式求出T表矩阵的值6.若达到精度则运算结束,若未达到循环计算7.输出T表,得出的值就是导数值五、实验结果六、实验结果分析此实验通过MATLAB实现外推法数值微分计算,得到相应的数据,⽅便对数据进⾏分析。
从结果可以看出,当步长h=0.025时⽤中点微分公式只有3位有效数字,外推⼀次达到5位有效数字,外推两次达到9位有效数字。
七、附录(程序)function g=waituifa(fname,x,h,e)if nargin<4,e=1e-3;end;i=1;j=1;G(1,1)=(feval(fname,x+h)-feval(fname,x-h))/(2*h);G(i+1,1)=(feval(fname,x+h/2)-feval(fname,x-h/2))/h;G(i+1,j+1)=(4^j*G(i+1,j)-G(i,j))/(4^j-1);while abs(G(i+1,i+1)-G(i+1,i))>ei=i+1;G(i+1,1)=(feval(fname,x+h/2^i)-feval(fname,x-h/2^i))/(2*h/2^i); for j=1:iG(i+1,j+1)=((4^j)*G(i+1,j)-G(i,j))/(4^j-1);endendGg=G(i+1,i+1);。
第四章MATLAB 的数值计算功能Chapter 4: Numerical computation of MATLAB数值计算是MATLAB最基本、最重要的功能,是MATLAB最具代表性的特点。
MATLAB在数值计算过程中以数组和矩阵为基础。
数组是MATLAB运算中的重要数据组织形式。
前面章节对数组、矩阵的特征及其创建与基本运算规则等相关知识已作了较详尽的介绍,本章重点介绍常用的数值计算方法。
一、多项式(Polynomial)`多项式在众多学科的计算中具有重要的作用,许多方程和定理都是多项式的形式。
MATLAB提供了标准多项式运算的函数,如多项式的求根、求值和微分,还提供了一些用于更高级运算的函数,如曲线拟合和多项式展开等。
1.多项式的表达与创建(Expression and Creating of polynomial) (1) 多项式的表达(expression of polynomial)_Matlab用行矢量表达多项式系数(Coefficient),各元素按变量的降幂顺序排列,如多项式为:P(x)=a0x n+a1x n-1+a2x n-2…a n-1x+a n则其系数矢量(Vector of coefficient)为:P=[a0 a1… a n-1 a n]如将根矢量(Vector of root)表示为:ar=[ ar1 ar2… ar n]则根矢量与系数矢量之间关系为:(x-ar1)(x- ar2) … (x- ar n)= a0x n+a1x n-1+a2x n-2…a n-1x+a n(2)多项式的创建(polynomial creating)a)系数矢量的直接输入法利用poly2sym函数直接输入多项式的系数矢量,就可方便的建立符号形式的多项式。
例1:创建多项式x3-4x2+3x+2poly2sym([1 -4 3 2])ans =x^3-4*x^2+3*x+2POLY Convert roots to polynomial.POLY(A), when A is an N by N matrix, is a row vector withN+1 elements which are the coefficients of the characteristicpolynomial, DET(lambda*EYE(SIZE(A)) - A) .POLY(V), when V is a vector, is a vector whose elements arethe coefficients of the polynomial whose roots are theelements of V . For vectors, ROOTS and POLY are inversefunctions of each other, up to ordering, scaling, androundoff error.b) 由根矢量创建多项式已知根矢量ar, 通过调用函数p=poly(ar)产生多项式的系数矢量, 再利用poly2sym函数就可方便的建立符号形式的多项式。
第四章MATLAB的数值计算功能MATLAB是一种非常强大的数值计算环境,具有广泛的数值计算功能。
在本文中,我们将讨论MATLAB的一些常见数值计算功能,包括数值求解、数值积分和数值优化等。
首先,MATLAB可以进行数值求解。
数值求解是指通过数值方法来找到方程的根或函数的极值。
MATLAB提供了多种数值求解方法,包括牛顿法、割线法、二分法等。
用户可以根据具体的问题选择适当的数值求解方法,并使用MATLAB的相关函数进行求解。
例如,可以使用fzero函数来求解非线性方程的根,使用fsolve函数来求解非线性方程组的根。
其次,MATLAB还可以进行数值积分。
数值积分是指通过数值方法来计算函数的定积分。
MATLAB提供了多种数值积分方法,包括梯形法则、辛普森法则、高斯积分法等。
用户可以使用MATLAB的相关函数进行数值积分计算。
例如,可以使用trapz函数来进行梯形法则积分计算,使用quad函数来进行高斯积分法的计算。
此外,MATLAB还具有数值优化功能。
数值优化是指通过数值方法来寻找函数的最大值或最小值。
MATLAB提供了多种数值优化方法,包括梯度法、牛顿法、遗传算法等。
用户可以使用MATLAB的相关函数进行数值优化计算。
例如,可以使用fminbnd函数来进行单变量函数的最小值优化,使用fmincon函数来进行多变量函数的约束优化。
除了以上功能,MATLAB还具有其他一些重要的数值计算功能。
例如,MATLAB提供了矩阵计算、代数运算、数值微分、常微分方程求解等功能。
用户可以使用MATLAB的矩阵运算符进行矩阵计算,使用MATLAB的代数运算函数进行代数运算,使用MATLAB的diff函数进行数值微分计算,使用MATLAB的ode45函数进行常微分方程数值求解。
总而言之,MATLAB是一种功能强大的数值计算环境,具有广泛的数值计算功能。
无论是数值求解、数值积分还是数值优化等,MATLAB都提供了多种数值计算方法和相关函数,方便用户进行数值计算工作。
第4章MATLAB数据分析与多项式计算MATLAB是一种强大的数值计算和数据分析工具,能够帮助用户高效地进行各种数据处理和分析操作。
本章将介绍MATLAB在数据分析和多项式计算方面的应用。
1.数据分析数据分析是指通过对大量数据进行整理、分析和挖掘,从中获取有价值的信息和知识。
MATLAB提供了丰富的数据分析函数和工具箱,可以帮助用户进行各种统计分析、数据可视化和模型拟合等操作。
1.1统计分析MATLAB中的统计工具箱提供了丰富的统计分析函数,可以进行各种统计指标的计算,如均值、方差、标准差等。
同时,还可以进行假设检验、置信区间估计等统计推断分析。
1.2数据可视化MATLAB提供了强大的数据可视化工具,可以通过绘制统计图表来展示数据的分布和趋势。
用户可以利用MATLAB绘制条形图、散点图、线图等各种图表,帮助理解数据的特点和关系。
1.3模型拟合MATLAB中的曲线拟合工具可以帮助用户根据已知数据拟合出合适的数学模型。
通过拟合曲线,可以对数据进行预测和推断,从而为后续的决策和分析提供依据。
多项式计算是指对多项式进行各种运算,如多项式乘法、求导、积分等。
在MATLAB中,多项式计算可以利用多项式系数和多项式对象来实现。
2.1多项式乘法MATLAB中提供了polyval函数,可以根据给定的多项式系数和x值计算多项式的值。
此外,还提供了conv函数,可以实现多项式的乘法运算。
2.2多项式求导MATLAB中提供了polyder函数,可以根据给定的多项式系数计算多项式的导数。
用户可以利用该函数计算多项式导函数的值,从而研究多项式的变化规律。
2.3多项式积分MATLAB中提供了polyint函数,可以根据给定的多项式系数计算多项式的积分。
用户可以利用该函数计算多项式在给定区间上的积分值,求解多项式面积和曲线长度等问题。
总结:MATLAB是一种功能强大的数据分析和多项式计算工具,能够帮助用户进行各种数据分析和多项式运算操作。
第四章MATLAB 的数值计算功能一.多项式`1.多项式的表达与创建Matlab用矢量表达多项式系数,元素按降幂排列:P(x)=a0x n+a1x n-1+a2x n-2…a n-1x+a0其系数矢量为:P=[a0 a1… a n-1 a n]如将根矢量表示为:ar=[ ar1 ar2… ar n]则根矢量与系数矢量之间关系为:(x-ar1)(x- ar2) … (x- ar n)= a0x n+a1x n-1+a2x n-2…a n-1x+a0多项式系数矢量可通过调用函数p=poly(ar)产生例1:由根矢量创建多项式。
将多项式(x-6)(x-3)(x-8)表示为系数形式a=[6 3 8]pa=poly(a) %求系数矢量ppa=poly2sym(pa) %以符号形式表示原多项式ezplot(ppa,[-50,50])pa =1 -17 90 -144ppa =x^3-17*x^2+90*x-144注:(1)根矢量元素为n ,则多项式系数矢量元素为n+1;2)函数poly2sym(pa)把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定自变量。
(3)使用简单绘图函数可以直接绘制符号形式多项式的曲线。
例2:求三阶方阵A的特征多项式系数,并转换为多项式形式。
a=[6 3 8;7 5 6; 1 3 5]Pa=poly(a) %求矩阵的特征多项式系数矢量Ppa=poly2sym(pa)Pa =1.0000 -16.0000 38.0000 -83.0000Ppa =x^3-17*x^2+90*x-144注:n 阶方阵的特征多项式系数矢量一定是n +1阶的。
例3:由给定复数根矢量求多项式系数矢量。
r=[-0.5 -0.3+0.4i -0.3-0.4i];p=poly(r)pr=real(p)ppr=poly2sym(pr)p =1.0000 1.1000 0.5500 0.1250pr =1.0000 1.1000 0.5500 0.1250ppr =x^3+11/10*x^2+11/20*x+1/8注:(1)要形成实系数多项式,根矢量中的复数根必须共轭成对;(2)含复数根的根矢量所创建的多项式系数矢量中,可能带有很小的虚部,此时可采用取实部的命令(real)把虚部滤掉。
例4:将多项式的系数表示形式转换为根表现形式,poly和roots互为逆函数。
求x3-6x2-72x-27的根a=[1 -6 -72 -27]r=roots(a)r =12.1229-5.7345-0.3884MATLAB约定,多项式系数矢量用行矢量表示,根矢量用列矢量表示。
>>1. 多项式的乘除运算多项式乘法用函数conv(a,b)实现,除法用函数deconv(a,b)实现。
例1:a(s)=s2+2s+3, b(s)=4s2+5s+6,计算a(s)与b(s)的乘积。
a=[1 2 3]; b=[4 5 6];c=conv(a,b)cs=poly2sym(c,’s’)c =4 13 28 27 18cs =4*s^4+13*s^3+28*s^2+27*s+18例2:展开(s2+2s+2)(s+4)(s+1) (多个多项式相乘)c=conv([1,2,2],conv([1,4],[1,1]))cs=poly2sym(c,’s’)(指定变量为s)c =1 7 16 18 8cs =s^4+7*s^3+16*s^2+18*s+8例2:求多项式s^4+7*s^3+16*s^2+18*s+8分别被(s+4),(s+3)除后的结果。
c=[1 7 16 18 8];[q1,r1]=deconv(c,[1,4]) q—商矢量,r—余数矢量[q2,r2]=deconv(c,[1,3])cc=conv(q2,[1,3]) 对除(s+3)结果检验test=((c-r2)==cc)q1 =1 3 4 2r1 =0 0 0 0 0q2 =1 4 4 6r2 =0 0 0 0 -10cc =1 7 16 18 18test =1 1 1 1 11. 其他常用的多项式运算命令pa=polyval(p,s) 按数组运算规则计算给定s 时多项式p 的值。
pm=polyvalm(p,s) 按矩阵运算规则计算给定s 时多项式p 的值。
[r ,p,k]=residue(b,a) 部分分式展开,b,a 分别是分子分母多项式系数矢量,r ,p,k 分别是留数、极点和直项矢量p=polyfit(x,y,n) 用n 阶多项式拟合x ,y 矢量给定的数据。
polyder(p) 多项式微分。
注: 对于多项式b(s)与不重根的n 阶多项式a(s)之比,其部分分式展开为:)()()(2211s k p s r L p s r p s r s a s b n n +-++-+-=式中:p 1,p 2,…,p n 称为极点,r 1,r 2,…,r n 称为留数,k(s)称为直项,假如a(s)含有m 重根p j ,则相应部分应写成:m j m j j j j jp s r L p s r p s r )()(121-++-+--++例3:对 (3x 4+2x 3+5x 2+4x+6)/(x 5+3x 4+4x 3+2x 2+7x+2) 做部分分式展开a=[1 3 4 2 7 2];b=[3 2 5 4 6];[r ,s,k]=residue(b,a)r =1.1274 + 1.1513i1.1274 - 1.1513i-0.0232 - 0.0722i-0.0232 + 0.0722i0.7916s =-1.7680 + 1.2673i-1.7680 - 1.2673i0.4176 + 1.1130i0.4176 - 1.1130i-0.2991k =[] (分母阶数高于分子阶数时,k将是空矩阵,表示无此项)例5:对一组实验数据进行多项式最小二乘拟合x=[1 2 3 4 5]; % 实验数据y=[5.5 43.1 128 290.7 498.4];p=polyfit(x,y,3) %做三阶多项式拟合x2=1:.1:5;y2=polyval(p,x2); % 根据给定值计算多项式结果plot(x,y,’o’,x2,y2)二.线性代数解线性方程就是找出是否存在一个唯一的矩阵x,使得a,b满足关系:ax=b 或xa=bMALAB中x=a\b 是方程ax=b 的解,x=b/a是方程式xa=b的解。
通常线性方程多写成ax=b,“\”较多用,两者的关系为:(b/a)’=(a’\b’)系数矩阵a可能是m行n列的,有三种情况:*方阵系统: m=n 可求出精确解(a必须是非奇异,即满秩)*超定系统:m>n 可求出最小二乘解*欠定系统:m<n 可尝试找出含有最少m个基解或最小范数解MA TLAB对不同形式的参数矩阵,采用不同的运算法则来处理,它会自动检测参数矩阵,以区别下面几种形式:*三角矩阵*对称正定矩阵*非奇异方阵*超定系统*欠定系统1.方阵系统:最常见的是系数矩阵为方阵a,常数项b为列矢量, 其解x可写成x=a\b, x和b大小相同。
例1:求方阵系统的根。
a=[11 6 7; 5 13 9; 17 1 8]b=[16 13 4]’x=a\ba =11 6 75 13 917 1 8b =16134x =3.97635.4455-8.6303例2:假如a,b为两个大小相同的矩阵,求方阵系统的根。
a=[4 5 9; 18 19 5; 1 4 13]b=[1 5 12; 3 15 19; 7 6 10]x=a\bC=a*xa =4 5 918 19 51 4 13b =1 5 123 15 197 6 10x =-3.6750 -0.7333 2.97083.7250 1.4667 -2.1292-0.3250 0.0667 1.1958C =1.0000 5.0000 12.00003.0000 15.0000 19.00007.0000 6.0000 10.0000若方阵a的各个行矢量线性相关,则称方阵a为奇异矩阵。
这时线性方程将有无穷多组解。
若方阵是奇异矩阵,则反斜线运算因子将发出警告信息。
2.超定系统实验数据较多,寻求他们的曲线拟合。
如在t内测得一组数据y:t y0.0 0.820.3 0.720.8 0.631.10.601.6 0.552.2 0.50这些数据显然有衰减指数趋势:y(t)~c1+c2e-t此方程意为y矢量可以由两个矢量逐步逼近而得,一个是单行的常数矢量,一个是由指数e-t项构成,两个参数c1和c2可用最小二乘法求得,它们表示实验数据与方程y(t)~c1+c2e-t之间距离的最小平方和。
例1:求上述数据的最小二乘解。
将数据带入方程式y(t)~c1+c2e-t中,可得到含有两个未知数的6个等式,可写成6行2 列的矩阵e.t=[0 0.3 0.8 1.1 1.6 2.2]’;y=[0.82 0.72 0.63 0.60 0.55 0.50]’;e=[ones(size(t)) exp(-t)] %求6个y(t)方程的系数矩阵c=e\y %求方程的解e =1.0000 1.00001.0000 0.74081.0000 0.44931.0000 0.33291.0000 0.20191.0000 0.1108c =0.47440.3434带入方程得:y(t)~0.4744+0.3434e-t用此方程可绘制曲线:t=[0 0.3 0.8 1.1 1.6 2.2]’;y=[0.82 0.72 0.63 0.60 0.55 0.50]’;t1=[0:0.1:2.5]’;y1=[ones(size(t1)),exp(-t1)]*cplot(t1,y1,’b’,t,y,’ro’)如果一个矩阵的行矢量是线性相关的,则它的最小二乘解并不唯一,因此,a\b运算将给出警告,并产生含有最少元素的基解。
3 .欠定系统: 欠定系统为线性相关系统,其解都不唯一,MA TLAB会计算一组构成通解的基解,而方程的特解则用QR分解法决定。
两种解法:最少元素解a\b,最小范数解pinv(a)*b.例:用两种方法求解欠定系统。
对a和矢量b分别用a\b和pinv(a)*b求解:a=[1 1 1; 1 1 -1]b=[10 6]’p=a\bq=pinv(a)*ba =1 1 11 1 -1b =106p =8.00002.0000q =4.00004.00002.0000三.逆矩阵及行列式1.方阵的逆和行列式若a是方阵,且为非奇异阵,则方程ax=I和xa=I有相同的解X。
X 称为a的逆矩阵,记做a-1,在MA TLAB中用inv 函数来计算矩阵的逆。