搜档网
当前位置:搜档网 › matlab用矩阵的左除功能求线性方程组的解

matlab用矩阵的左除功能求线性方程组的解

matlab用矩阵的左除功能求线性方程组的解
matlab用矩阵的左除功能求线性方程组的解

1、用矩阵的左除功能求下列线性方程组的解

9.5x1-5x3=10

2x2-12.5x3=-2

-5x1-12x2+20.5x3=0

步骤1:matlab打开界面

步骤2:输入A=[9.5,0,-5;0,2,-12.5;-5,-12,20.5] b=[10;-2;0]

步骤3:

输入 x=inv(A)*b

x1=1.1147 x2=-0.2630 x3=0.1179

MatLab求解线性方程组

MatLab解线性方程组一文通 当齐次线性方程AX=0,rank(A)=r

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

matlab解方程组

matlab解方程组 lnx表示成log(x) 而lgx表示成log10(x) 1-exp(((log(y))/x^0.5)/(x-1)) 1、解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB 中有两种方法: (1)x=inv(A)*b —采用求逆运算解方程组; (2)x=A\B —采用左除运算解方程组 PS:使用左除的运算效率要比求逆矩阵的效率高很多~ 例: x1+2x2=8 2x1+3x2=13 >>A=[1,2;2,3];b=[8;13]; >>x=inv(A)*b x = 2.00 3.00 >>x=A\B x = 2.00 3.00; 即二元一次方程组的解x1和x2分别是2和3。 对于同学问到的用matlab解多次的方程组,有符号解法,方法是:先解出符号解,然后用vpa(F,n)求出n位有效数字的数值解.具体步骤如下: 第一步:定义变量syms x y z ...; 第二步:求解[x,y,z,...]=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN'); 第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。 如:解二(多)元二(高)次方程组: x^2+3*y+1=0 y^2+4*x+1=0 解法如下: >>syms x y; >>[x,y]=solve('x^2+3*y+1=0','y^2+4*x+1=0'); >>x=vpa(x,4); >>y=vpa(y,4); 结果是:

MATLAB解线性方程组的直接方法

在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法. 3.1 方程组的逆矩阵解法及其MATLAB 程序 3.1.3 线性方程组有解的判定条件及其MATLAB 程序 判定线性方程组A n m ?b X =是否有解的MATLAB 程序 function [RA,RB,n]=jiepb(A,b) B=[A b];n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0, disp('请注意:因为RA~=RB ,所以此方程组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n ,所以此方程组有唯一解.') else disp('请注意:因为RA=RB> A=[2 3 -1 5;3 1 2 -7;4 1 -3 6;1 -2 4 -7]; b=[ 0; 0; 0; 0]; [RA,RB,n]=jiepb(A,b) 运行后输出结果为 请注意:因为RA=RB=n ,所以此方程组有唯一解. RA = 4,RB =4,n =4 在MATLAB 工作窗口输入 >>X=A\b, 运行后输出结果为 X =(0 0 0 0)’. (2) 在MATLAB 工作窗口输入程序 >> A=[3 4 -5 7;2 -3 3 -2;4 11 -13 16;7 -2 1 3];b=[ 0; 0; 0; 0]; [RA,RB,n]=jiepb(A,b)

矩阵在解线性方程组中的应用

矩阵在解线性方程组中的应用 摘要 线性方程组的求解是代数学中一个比较重要的内容. 线性方程组求解过程中,掌握各种求解线性方程组的方法是至关重要的. 基于线性方程组和矩阵之间的联系,可以用线性方程组系数和常数项所构成的行列式矩阵来研究线性方程组的求解问题. 本文主要讨论矩阵的秩在方程组的解的判断中的应用、矩阵的初等变换在解线性方程组中的应用. 关键词: 矩阵;线性方程组;矩阵的秩;初等变换

The Application of Matrix in Solving Linear Equations ABSTRACT The solution of linear equations is an important part of algebra.In the process of solving line ar equations,it is very important to master various methods of solving linear equations.Based on the relationship between linear equations and matrix,the determinant matrix composed of coefficient and constant term of linear equations can be used to study the solution of linear equations. This paper mainly discusses the application of the rank of matrix in the judgment of the solution of equations and the application of the elementary transformation of matrix in the solution of linear equations. Keywords: matrix;linear;equations;rank of matrix;elementary transformation

利用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=0 4、秩:向量组的极在线性无关组所含向量的个数成为这个向量组的秩。 5、矩阵B的秩:行秩,指矩阵的行向量组的秩;列秩类似。记:R(B)

线性方程组求解matlab实现

3.1 方程组的逆矩阵解法及其MATLAB 程序 3.1.3 线性方程组有解的判定条件及其MATLAB 程序 判定线性方程组A n m ?b X =是否有解的MATLAB 程序 function [RA,RB,n]=jiepb(A,b) B=[A b];n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0, disp('请注意:因为RA~=RB ,所以此方程组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n ,所以此方程组有唯一解.') else disp('请注意:因为RA=RB> A=[2 3 -1 5;3 1 2 -7;4 1 -3 6;1 -2 4 -7]; b=[ 0; 0; 0; 0]; [RA,RB,n]=jiepb(A,b) 运行后输出结果为 请注意:因为RA=RB=n ,所以此方程组有唯一解. RA = 4,RB =4,n =4 在MATLAB 工作窗口输入 >>X=A\b, 运行后输出结果为 X =(0 0 0 0)’. (2) 在MATLAB 工作窗口输入程序 >> A=[3 4 -5 7;2 -3 3 -2;4 11 -13 16;7 -2 1 3];b=[ 0; 0; 0; 0]; [RA,RB,n]=jiepb(A,b) 运行后输出结果 请注意:因为RA=RB> A=[4 2 -1;3 -1 2;11 3 0]; b=[2;10;8]; [RA,RB,n]=jiepb(A,B) 运行后输出结果 请注意:因为RA~=RB ,所以此方程组无解. RA =2,RB =3,n =3 (4)在MATLAB 工作窗口输入程序

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

实验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线性方程组求解(Gauss消去法)

Matlab线性方程组求解 1. Gauss消元法: function x=DelGauss(a,b) % Gauss消去法 [n,m]=size(a); nb=length(b); det=1; %存储行列式值 x=zeros(n,1); for k=1:n-1 for i=k+1:n if a(k,k)==0 return end m=a(i,k)/a(k,k); for j=k+1:n a(i,j)=a(i,j)-m*a(k,j); end b(i)=b(i)-m*b(k); end det=det*a(k,k); %计算行列式 end det=det*a(n,n); for k=n:-1:1 %回代求解 for j=k+1:n b(k)=b(k)-a(k,j)*x(j); end x(k)=b(k)/a(k,k);

end Example: >> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]'; >> x=DelGauss(A,b) x = 0.9739 -0.0047 1.0010 2. 列主元Gauss消去法: function x=detGauss(a,b) % Gauss列主元消去法 [n,m]=size(a); nb=length(b); det=1; %存储行列式值 x=zeros(n,1); for k=1:n-1 amax=0; %选主元 for i=k:n if abs(a(i,k))>amax amax=abs(a(i,k));r=i; end end if amax<1e-10 return; end if r>k %交换两行 for j=k:n

Matlab求解线性方程组非线性方程组

求解线性方程组 solve,linsolve 例: A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1]; %矩阵的行之间用分号隔开,元素之间用逗号或空格 B=[3;1;1;0] X=zeros(4,1);%建立一个4元列向量 X=linsolve(A,B) diff(fun,var,n):对表达式fun中的变量var求n阶导数。 例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式 diff(F); %matlab区分大小写 pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式 非线性方程求解 fsolve(fun,x0,options) 为待解方程或方程组的文件名;fun其中 x0位求解方程的初始向量或矩阵; option为设置命令参数 建立文件fun.m: function y=fun(x) y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ... x(2) - 0.5*cos(x(1))+0.3*sin(x(2))]; >>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve')) 注: ...为续行符 m文件必须以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。Matlab求解线性方程组 AX=B或XA=B 在MATLAB中,求解线性方程组时,主要采用前面章节介绍的除法运算符“/”和“\”。如: X=A\B表示求矩阵方程AX=B的解; 的解。XA=B表示矩阵方程B/A=X. 对方程组X=A\B,要求A和B用相同的行数,X和B有相同的列数,它的行数等于矩阵A的列数,方程X=B/A同理。 如果矩阵A不是方阵,其维数是m×n,则有: m=n 恰定方程,求解精确解; m>n 超定方程,寻求最小二乘解; m

矩阵方程求解方法-矩阵解题

矩阵方程求解方法 本文所述的矩阵方程是指形如Ax=b的方程,其中A是一个mxn的矩阵,称为方程的系数 矩阵。x和b是mx1的矩阵。特别的,当b=0时,这种方程又称为齐次方程。本文将讨论 这种矩阵的有解条件和求解方法。 矩阵方程的有解条件 为了解释矩阵方程的有解条件,我们首先要熟悉一些概念。 一个矩阵方程的增广矩阵是系数矩阵A和b并在一起构成的矩阵,记作(A,b)。 假定 , ,则矩阵方程的增广矩阵就是 矩阵的秩定义为其行向量中极大线性无关组中包含向量的个数,等价的说法是,矩阵的秩 是r,则矩阵通过行列初等变换,变换成左上角是一个r阶单位矩阵,其他都是0的矩阵。矩阵A的秩记作r(A),其中r是英文单词rank的缩写。 有了这两个基本概念,我们就可以准确描述矩阵方程的有解条件了:矩阵方程Ax=b的有 解条件是矩阵A的秩等于增广矩阵(A,b)的秩,也就是r(A)=r(A,b)。 证明很简单,既然矩阵A的秩是r,那么肯定可以找到两个可逆的矩阵P,Q,满足 --1) 其中I r表示r阶单位矩阵。 应用到原来的方程,可以得到: --2) 我们把Q-1x当作一个未知的变量,PAQ当作系数,这就构成一个新的矩阵方程。而这个矩 阵方程的左侧系数除了前r行是有1的之外,其余行是0。为了它有解,Pb的后m-r行必 须也是0。这样(A,b)的秩必然是r。 必须注意到Q-1是可逆的,因此以Q-1x为未知变量的方程有解意味着以x为未知变量的原 方程也是有解的。

矩阵方程的解 对于矩阵方程Ax=b,如果满足r(A)=r(A,b),则矩阵方程是有解的。为了求它的解,我们首先把矩阵方程通过行列初等变换变化成前文2)式的形式,代入1)式后得到: --3) 其中Q-1x和Pb是一个列向量,我们可以把它们分割成rx1和(n-r)x1的两个矩阵,分别记作x’1和x’2,及b’1和b’2。则很显然我们可以得到: --4) 很显然,b’2必须为0,因为展开后b’2等于0 x’1 +0 x’2 =0 而由4式可以看出,x’1= b’1,x’2可以为任意向量。 所以方程最后的解为: --5) 从解的形式可以看出解空间有如下特性: 1.方程Ax=b的解空间的秩是n-r(A) 2.如果A是满秩的,则方程的解唯一。

线性方程组求解Matlab程序(精.选)

线性方程组求解 1.直接法 Gauss消元法: function x=DelGauss(a,b) % Gauss消去法 [n,m]=size(a); nb=length(b); det=1;%存储行列式值 x=zeros(n,1); for k=1:n-1 for i=k+1:n if a(k,k)==0 return end m=a(i,k)/a(k,k); for j=k+1:n a(i,j)=a(i,j)-m*a(k,j); end b(i)=b(i)-m*b(k); end det=det*a(k,k); end

det=det*a(n,n); for k=n:-1:1 %回代 for j=k+1:n b(k)=b(k)-a(k,j)*x(j); end x(k)=b(k)/a(k,k); end Example: >> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]'; >> x=DelGauss(A,b) x = 0.9739 -0.0047 1.0010 列主元Gauss消去法: function x=detGauss(a,b) % Gauss列主元消去法

[n,m]=size(a); nb=length(b); det=1;%存储行列式值 x=zeros(n,1); for k=1:n-1 amax=0;% 选主元 for i=k:n if abs(a(i,k))>amax amax=abs(a(i,k));r=i; end end if amax<1e-10 return; end if r>k %交换两行 for j=k:n z=a(k,j);a(k,j)=a(r,j);a(r,j)=z; end z=b(k);b(k)=b(r);b(r)=z;det=-det; end

第一章 线性方程组的解法(新)

第一章 线性方程组的解法 求解线性方程组是科学研究和工程应用中最普遍和最重要的问题,超过75%的科学研究和工程应用中的数学问题,在某一阶段都与线性方程组的求解有关.本章介绍求解线性方程组的消元法及其矩阵形式. 引例 交通流量问题 随着城市人口以及交通流量的增加,城市道路交通拥堵问题已成为制约经济发展、降低人民生活质量、削弱经济活力的瓶颈之一.为解决这个世界性难题,各国政府和民间都进行了广泛的研究,提出了提高交通管理水平、增强交通参与者的素质、扩大道路容量、限制车辆增长速度等政策及车牌限行、设置单向行驶道路等措施.以上的政策和措施的一个基础性工作就是各道路的车流量的统计与分流控制.使各道路的交通流量要达到平衡,所谓交通流量平衡是指在每个路口进入的车辆数与离开的车辆数相等.图1是某一城市的道路交通网络图,所有车道都是单行道.箭头给出了车辆的通行方向,数字是高峰期每小时进入和离开路口的车辆数.在满足交通流量平衡的条件下,试问如何分流车辆. 图1 为了保证交通流量平衡,得线性方程组 12 23345461 56300,200,300,100,300.x x x x x x x x x x x x +=??-=-?? -+=? ?-=-??-+=? () 问题归结为讨论线性方程组()是否有解若有解,求出方程组的解.

第一节 线性方程组的消元法 一、线性方程组的概念 设12,,,n x x x L 为实未知量,12,,,,n a a a b L 为实数,n 为正整数.方程 1122n n a x a x a x b +++=L 称为含未知量12,,,n x x x L 的线性方程.由m 个含未知量12,,,n x x x L 的线性方程组成的方程组 1111221121122222 1122,,, n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++=??+++=????+++=?L L L L L L L L L L L L L L () 称为n 元线性方程组,其中,(1,2,,;1,2,,)ij i a b i m j n ==L L 为实数.若 1122,,,n n x c x c x c ===L () 使()中的每一个方程都成立,则称()为方程组()的解. 如果线性方程组()有解,则称方程组()是相容的;否则,称方程组()是不相容的. 线性方程组解的全体所构成的集合称为该线性方程组的解集.显然,如果线性方程组不相容,其解集必为空集.能表示线性方程组全部解的表达式称为方程组的通解或一般解. 具有相同解集的线性方程组称为同解方程组或等价方程组. 二、线性方程组的消元法 中学所学的解线性方程组的消元法是求解线性方程组简单有效的方法.现在我们回忆消元法的过程. 例1 利用消元法求解线性方程组 121223,(1)45 6. (2) x x x x +=?? +=? 解 将方程(1)乘以4-加到方程(2)上,得等价方程组 122 23,(3) 3 6.(4)x x x +=?? -=-? 由方程(4)解得22x =,再代入方程(3),得11x =-,则原方程组的解为121,2x x =-=.该方程组有唯一解. 例2 利用消元法求解线性方程组

用矩阵解一次方程组

人教版第八章阅读与思考的延伸与拓展 用矩阵解一次方程组 年级:七年级下版本:人教版 单位:五大连池市第一中学校执教:李淑波 一、内容和内容解析 1.内容: 第八章阅读与思考的延伸与拓展第二课时 2.内容分析 《义务教育数学课程标准(2011年版)》一次方程组的古今表示及解法选学为书中的阅读与思考。一般来说这样的内容老师和学生是忽略的。在教学时我让学生自学了这部分内容,在阅读时有学生提出质疑,方程组的系数和常数项可以写成一个矩阵,可写出这个矩阵有什么用?该不该把用矩阵解一次方程组的知识教给孩子。面对这个质疑我思考了良久,毕竟矩阵的初等变换是高等数学范畴里的内容,在初一这个阶段让学生接受这样的一个知识点会不会难度太大。但我知道矩阵的三种初等变换是和方程组的同解原理是一样的,在这个学段给学生介绍矩阵解一次方程组既可以满足学生对知识的渴求,也让学生今后学习任何知识都是建立在基础知识之上的,它是有根的,也培养学生对知识有一种溯本求源的精神,也想培养学生敢于挑战自己的精神,于是我决定把用矩阵解一次方程组的方法教给孩子。 二、目标和重点、难点 1.教学目标 知识目标:(1)会用矩阵解简单的一次方程组。 (2)理解矩阵在进行初等变换时的原理。

过程与方法:因为这节课的内容有一部分隶属于高等数学的范畴,所以更多是让学生观察探究的过程,体会矩阵解一次方程组的优势。情感态度与价值观:通过学生的观察与尝试,让学生体会数学思想,感受数学的魅力,激发学生的学习热情。培养学生学生对知识有一种溯本求源的精神,培养学生敢于挑战自己的精神。 2.重点 会用矩阵解二元一次方程组和三元一次方程组。 3.难点 用矩阵求一次方程组解时进行的初等变换. 三、课时安排:一课时. 四、教具学具准备:交互式电子白板. 五、学情分析:七年级的学生对于数学的建模思想和转化思想还是正在建立的过程中,只有在原有的模型基础上逐渐剥茧抽丝帮学生建立新的模型。矩阵的初等变换隶属于高等数学范畴里,是高等数学的常见工具,在初一这个阶段让学生接受这样的一个知识点有难度。可矩阵的三种初等变换是和方程组的同解原理是一样的,在这个学段给学生介绍矩阵解一次方程组既可以满足学生对知识的渴求,也让学生任何高一级的知识都是建立在基础知识之上的,它是有根的,也想培养学生以后对知识有一种溯本求源的精神,也想培养学生敢于挑战自己的精神,体会数学无穷魅力! 六、教学过程设计 (一)立足教材,引出课题

matlab常用解方程及方程组函数

1. roots 求解多项式的根 r=roots(c) 注意: c 为一维向量,者返回指定多项式的所有根( 包括复根),poly 和roots 是互为反运算,还有就是roots 只能求解多项式的解 还有下面几个函数poly2sym、sym2poly 、eig >>syms x >>y=x A5+3*x A3+3; >>c=sym2poly(y);%求解多项式系数 >>r=roots(c); >>poly(r) 2. residue 求留数 [r, p, k] = residue(b,a) >>b = [ 5 3 -2 7] >>a = [-4 0 8 3] >>[r, p, k] = residue(b,a) 3. solve 符号解方程(组)——使用最多的 g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) 注意:eqn 和varn 可以是符号表达式,也可以是字符串表达式,但是使用符号表达式时不能有“=号”,假如说varn 没有给出,使用findsym 函数找出默认的求解变量。返回的g 是个结构体,以varn 为字段。由于符号求解的局限性,好多情况下可能得到空矩阵,此时只能用数值解法 解方程A=solve('a*xA2 + b*x + c') 解方程组B=solve('a*uA2 + vA2', 'u - v = 1', 'aA2 - 5*a + 6') 4. fzero 数值求零点 [x,fval,exitflag,output]=fzero(fun,x0,options,p1,p2...) fun 是目标函数,可以是句柄(@)、inline 函数或M 文件名 x0 是初值,可以是标量也可以是长度为2 的向量,前者给定一个位置,后者是给定一个范围options 是优化参数,通过optimset 设置,optimget 获取,一般使用默认的就可以了,具体参照帮助 p1,p2...为需要传递的其它参数 假如说(x/1446)A2+p/504.1+(t/330.9)*(log(1-x/1446)+(1-1 /5.3)*x/1446)=0 的根,其中p,t 是已知

用矩阵法解方程组——excel高级应用

理论基础 根据数学知识将方程组改写成矩阵方程地形式: 其中,( )* 为阶系数方阵;( ,,……,),是维未知列向量;(,,?) ,为维常数列向量. 若系数方阵有逆矩阵则成立,这样一来,就由求解线性方程组地问题转变成求未知向量地问题.系数方程有逆矩阵地充分必要条件是所对应地行列式地值不为.即:若系数行列式≠,则方程组必有唯一地解:,这样求解线性方程组地过程就是进行一系列矩阵运算地过程,而提供了一些矩阵运算地函数,利用这些函数可以很容易地进行相关地矩阵运算,从而得到线性方程组地解. 实例求解 例如要求解地解线性方程组为: 1l 求解具体步骤如下: )在中输入系数方阵. 在工作表中任选行列地一个区域,如::,将系数行列式地元素依次输入到该区域 中去,如表所. )判断线性方程组是否有解. 选择另外一个元格,如,单击“常用” 具栏中“函数”按钮.在“函数分类”中选择“数学与三 角数”类,然后选择“”函数.在“”输入框中输入域:. 单击“确定”按钮,在单元格中显示出行列式地值为一.由此结果得知该方程组系数行列式地值不为,此系数矩阵有逆矩阵,方程组有唯一解. )求系数矩阵地逆. 根据数学知识,当一个矩阵所对应地行列式地值不为时,则该矩阵一定存在逆矩阵,在中 逆矩阵可以用函数求得. 在工作表中再选行列地一个区域:,单击“常用”工具栏中“函数”按钮.在“函数分类” 中选择“数学与三角函数”类,然后选择“”函数.在“”输入框中输入区域:并单击“确定”.

将光标定位在编辑栏中所输入公式地结尾处,然后同时按下,,个键,则在区域: 中显示出矩阵地逆矩阵地系数. )求线性方程组地解. 求线性方程组地解也就是求矩阵地逆矩阵与列向量地乘积: 在上面同一张工作表中地:区域存放地是系数矩阵地逆矩阵~,再选定一个行列地区域如:,将列向量输入到该区域中去. 另外选择一个行列地区域如:,单击“常用”工具栏中“函数”按钮.在“函数分类”中选择“数学与三角函数”类,然后选择“”函数. 在“ ”输入框中输入矩阵地逆所在区域:;在“”输入框中输入列向量所在地 区域:,然后单击“确定”. 将光标定位在编辑栏中所输入公式地结尾处,然后按下,,个键,则区域:中显 示出两个矩阵乘积结果,即方程地解: ;;一;一. 上述方法是在判断线性方程组有解地条件下,利用所提供地相关函数进行矩阵运算,从而 得到线性方程组地解,避免了繁琐地手工运算,提高了工作效率.

用matlab解线性方程组

用matlab解线性方程组 2008-04-12 17:00 一。高斯消去法 1.顺序高斯消去法 直接编写命令文件 a=[] d=[]' [n,n]=size(a); c=n+1 a(:,c)=d; for k=1:n-1 a(k+1:n, k:c)=a(k+1:n, k:c)-(a(k+1:n,k)/ a(k,k))*a(k, k:c); %消去 end x=[0 0 0 0]' %回带 x(n)=a(n,c)/a(n,n); for g=n-1:-1:1 x(g)=(a(g,c)-a(g,g+1:n)*x(g+1:n))/a(g,g) end 2.列主高斯消去法 *由于“[r,m]=max(abs(a(k:n,k)))”返回的行是“k:n,k”内的第几行,所以要通过修正来把m 改成真正的行的值。该程序只是演示程序,真正机器计算不需要算主元素所在列以下各行应为零的值。 直接编写命令文件 a=[] d=[] ' [n,n]=size(a); c=n+1 a(:,c)=d; %(增广) for k=1:n-1 [r,m]=max(abs(a(k:n,k))); %选主 m=m+k-1; %(修正操作行的值) if(a(m,k)~=0) if(m~=k) a([k m],:)=a([m k],:); %换行 end a(k+1:n, k:c)=a(k+1:n, k:c)-(a(k+1:n,k)/ a(k,k))*a(k, k:c); %消去end end x=[0 0 0 0]' %回带 x(n)=a(n,c)/a(n,n); for g=n-1:-1:1 x(g)=(a(g,c)-a(g,g+1:n)*x(g+1:n))/a(g,g) end

线性方程组的矩阵求法.

线性方程组的矩阵求法 摘要: 关键词: 第一章引言 矩阵及线性方程组理论是高等代数的重要内容, 用矩阵 方法解线性方程组又是人们学习高等代数必须掌握的基本 技能,本文将给出用矩阵解线性方程组的几种方法,通过对线性方程组的系数矩阵(或增广矩阵)进行初等变换得到其解,并列举出几种用矩阵解线性方程组的简便方法。 第二章用矩阵消元法解线性方程组 第一节预备知识 定义1:一个矩阵中不等于零的子式的最大阶数叫作这个矩阵的秩。定理1:初等变换把一个线性方程组变为一个与它同解的线性方程组。 定义2:定义若阶梯形矩阵满足下面两个条件: (1)B的任一非零行向量的第一个非零分量(称为的 一个主元)为1; (2)B中每一主元是其所在列的唯一非零元。 则称矩阵为行最简形矩阵。 第二节 1.对一个线性方程组施行一个初等变换,相当于对它的增广矩

阵施行一个对应的行初等变换,而化简线性方程组相当于用行初等变换化简它的增广矩阵,因此,我们将要通过花间矩阵来讨论化简线性方程组的问题。这样做不但讨论起来比较方便,而且能给我们一种方法,就一个线性方程组的增广矩阵来解这个线性方程组,而不必每次都把未知量写出来。 下面以一般的线性方程组为例,给出其解法: (1) 11112211 21122222 1122 , , . n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b +++= +++= +++ = 根据方程组可知其系数矩阵为: (2) 11121 21222 12 n n m m mn a a a a a a a a a ?? ? ? ? ? ??? 其增广矩阵为: (3) 111211 212222 12 n n m m mn m a a a b a a a b a a a b ?? ? ? ? ? ??? 根据(2)及矩阵的初等变换我们可以得到和它同解的线性方程组,并很容易得到其解。 定理2:设A是一个m行n列矩阵

雅可比解线性方程组matlab

雅可比迭代 使用雅可比迭代法求解线性方程组的步骤 步骤1:输入系数矩阵A和方程组右端向量B; 步骤2:将矩阵A分解为下三角阵L对角阵D和上三角阵U 可分解为(D+L+U)X=B for o=1:n d(o,o)=a(o,o); u(o,o+1:n)=-a(o,o+1:n); end for p=2:n l(p,1:p-1)=-a(p,1:p-1); end; 步骤3:将上式化简为x=B0x+f,其中B0=-D-1(L+U),f=D-1B for i=1:n b0(i,i+1:n)=u(i,i+1:n)/a(i,i); f(i,:)=b(i,:)/a(i,i); end for p=2:n b0(p,1:p-1)=l(p,1:p-1)/a(p,p);;

步骤4:采用迭代公式在允许误差范围e=1e-7内求得解向量x x0=x; x=b0*x+f 雅可比迭代法matlab程序: function [x,k]=jacobi(a,b) n=length(a); e=1e-7; m=100; x0=zeros(n,1); x=x0; k=0; d=zeros(n); l=zeros(n); u=zeros(n); b0=zeros(n); f=zeros(n,1);

x0=x+2*e; for o=1:n d(o,o)=a(o,o); u(o,o+1:n)=-a(o,o+1:n); end for p=2:n l(p,1:p-1)=-a(p,1:p-1); end for i=1:n b0(i,i+1:n)=u(i,i+1:n)/a(i,i); f(i,:)=b(i,:)/a(i,i); end for p=2:n b0(p,1:p-1)=l(p,1:p-1)/a(p,p); end while max(abs(x0-x))>e&k

解线性方程组直接方法matlab用法

2.1 方程组地逆矩阵解法及其MATLAB 程序 2.1.3 线性方程组有解地判定条件及其MATLAB 程序判定线性方程组A n m ?b X =是否有解地MATLAB 程序 function [RA,RB,n]=jiepb(A,b) B=[A b];n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0, disp('请注意:因为RA~=RB ,所以此方程 组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n ,所以此方 程组有唯一解.') else disp('请注意:因为RA=RB

相关主题