Matlab程序QR方法解方程组
- 格式:docx
- 大小:24.44 KB
- 文档页数:2


matlab之求解方程组在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=inv(A)*b —采用求逆运算解方程组;(2)x=A\b —采用左除运算解方程组。
例:x1+2x2=82x1+3x2=13>>A=[1,2;2,3];b=[8;13];>>x=inv(A)*bx =2.003.00>>x=A\bx =2.003.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=0y^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);结果是:x =1.635+3.029*i1.635-3.029*i-.283-2.987y =1.834-3.301*i1.834+3.301*i-.3600-3.307。
二元二次方程组,共4个实数根;还有的同学问,如何用matlab解高次方程组(非符号方程组)?举个例子好吗?解答如下:基本方法是:solve(s1,s2,…,sn,v1,v2,…,vn),即求表达式s1,s2,…,sn组成的方程组,求解变量分别v1,v2,…,vn。
MATLAB程序设计杨凯2010 . 11主要内容自学))*MATLAB解方程与函数极值解方程与函数极值((自学(自学)自学)线性方程组求解(一、线性方程组求解二、非线性方程组求解三、函数极值四、常微分方程初值问题的数值解法*MATLAB符号计算一、符号计算基础二、微积分三、简化方程表达式四、解方程一、线性方程组求解(自学)1.1 直接解法1.利用左除运算符的直接解法对于线性方程组Ax=b,可以利用左除运算符“\”求可以利用左除运算符“解:x=A\b例*:用直接解法求解下列线性方程组用直接解法求解下列线性方程组。
命令如下命令如下::A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\b2.利用矩阵的分解求解线性方程组矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积算法将一个矩阵分解成若干个矩阵的乘积。
常见的矩阵分解有LU 分解分解、、QR 分解分解、、Cholesky 分解分解,,以及Schur 分解分解、、Hessenberg 分解分解、、奇异分解等奇异分解等。
(1) LU 分解矩阵的LU 分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式角矩阵和一个上三角矩阵的乘积形式。
线性代数中已经证明,只要方阵A 是非奇异的是非奇异的,,LU 分解总是可以进行的分解总是可以进行的。
MATLAB 提供的lu 函数用于对矩阵进行LU 分解分解,,其调用格式为式为::[L,U]=lu(X):产生一个上三角阵U 和一个变换形式的下三角阵L(行交换),使之满足X=LU 。
注意注意,,这里的矩阵X 必须是方阵是方阵。
[L,U,P]=lu(X):产生一个上三角阵U 和一个下三角阵L 以及一个置换矩阵P ,使之满足PX=LU 。
当然矩阵X 同样必须是方阵方阵。
实现LU 分解后分解后,,线性方程组Ax=b 的解x=U\(L\b)或x=U\(L\Pb),这样可以大大提高运算速度这样可以大大提高运算速度。
matlab求解二元一次方程组的数值解摘要:一、引言二、Matlab中求解二元一次方程组的常用方法1.直接法2.迭代法3.数值方法三、数值方法的原理及应用1.雅可比迭代法2.托马斯迭代法3.平方根法四、实例演示1.编写Matlab程序2.输出结果及分析五、结论与展望正文:一、引言二元一次方程组是数学中的一种基本问题,而在工程、科学等领域中也广泛存在。
求解二元一次方程组的数值解是Matlab编程中的常见任务,本文将介绍在Matlab中求解二元一次方程组的常用方法及实例演示。
二、Matlab中求解二元一次方程组的常用方法直接法是通过高斯消元法求解二元一次方程组。
在Matlab中,可以使用`gesdd`函数直接求解。
例如:```matlabA = [1, 2; 3, 4];b = [5; 6];x = gesdd(A, b);```2.迭代法迭代法是通过不断更新变量来求解方程组。
在Matlab中,可以使用`fsolve`函数进行迭代求解。
例如:```matlabA = [1, 1; 1, 1];b = [2; 3];x0 = [1; 1];x = fsolve(@(x) A*x == b, x0);```3.数值方法数值方法包括雅可比迭代法、托马斯迭代法、平方根法等。
在Matlab 中,可以使用`fsolve`函数结合数值方法求解。
例如:```matlabA = [1, 1; 1, 1];x0 = [1; 1];options = optimoptions("fsolve", "Display", "on", "Tolerance", 1e-6);x = fsolve(@(x) A*x == b, x0, options);```三、数值方法的原理及应用1.雅可比迭代法雅可比迭代法是基于雅可比矩阵的迭代公式进行求解。
在Matlab中,可以使用自定义函数实现。