有人能够用matlab解这个方程组吗? matlab求二元一次方程组
如何用matlab解方程组?
我知道的Matlab解矩阵方法有:
A=[1 6 9;6 5 2;8 3 4]
b=[2;4;7]
1)x=inv(A)*b 【就是你用的方法】
2)x=A\b
3)x=A^(-1)*b
4)C=[A,b]
rref(C)
试试吧,也许好使。
还有一个网址,下载一些经典程序,如:
gmres_m.rar-gmres算法的一个特殊形式,用来求解大型稀疏矩阵方程,matlab
GMres.rar-数值算法中另一个经典算法gmres算法,用来求解大型矩阵方程问题。,matlab
arnoldi.rar-数值分析中经典的arnoldi算法,用来求解大型矩阵方程组的求解,matlab
www.programsalon/sitemap/sitemap153_1450.htm
补充:
2.利用矩阵的LU、QR和cholesky分解求方程组的解
(1)LU分解:
LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行交换)和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。
则:A*X=b 变成L*U*X=b
所以X=U\(L\b) 这样可以大大提高运算速度。
命令 [L,U]=lu (A)
例1-78 求方程组 的一个特解。
解:
>>A=[4 2 -1;3 -1 2;11 3 0];
>>B=[2 10 8]';
>>D=det(A)
>>[L,U]=lu(A)
>>X=U\(L\B)
显示结果如下:
D =
0
L =
0.3636 -0.5000 1.0000
0.2727 1.0000 0
1.0000 0 0
U =
11.0000 3.0000 0
0 -1.8182 2.0000
0 0 0.0000
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.018587e-017.
> In D:\Matlab\pujun\lx0720.m at line 4
X =
1.0e+016 *
-0.4053
1.4862
1.3511
说明 结果中的警告是由于系数行列式为零产生的。可以通过A*X验证其正确性。
(2)Cholesky分解
若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即: 其中R为上三角阵。
方程 A*X=b 变成
所以
(3)QR分解
对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR
方程 A*X=b 变形成 QRX=b
所以 X=R\(Q\b)
上例中 [Q, R]=qr(A)
X=R\(Q\B)
说明 这三种分解,在求解大型方程组时很有用。其优点是运算速度快、可以节省磁盘空间、节省内存。
也许这个能帮你点儿忙。
用matlab解线性方程组的几种方法,最好带个例子
在求解线性方程组时,会遇到以下几种情形:定解方程组、不定方程组、超定方程组、奇异方程组。作为示例,首先以定解线性方程组为例:
在分析如上方程组时,需要知道,方程中有3个未知数,而方程也有3个,所以可以求出(x,y,z)值,转化为矩阵即为: AX = B,其中A为系数矩阵,B为右边值向量。而X即为未知数构成的向量,转化后即为:
>> A = [2,3,1;
4,2,3;
7,1,-1];
如上为系数矩阵;
>> B = [4;17;1];
如上为右边值矩阵;
利用矩阵除法:
>> X = A\B
求得结果如下图红色箭头所示:
x = 1.0000 ; y = -1.0000 ; z = 5.0000;
matlab解方程组
clc
syms x y r;
a=input('输入a ')
h=input('输入h ')
j=input('输入度数[0-90] ')
[x y r]=solve(-y-x*tan(j*pi/180)+(r-h),x^2+y^2-r^2,a^2+(r-h)^2-r^2)
结果示例:
输入a 1
a =
1
输入h 2
h =
2
输入度数[0-90] 30
j =
30
x =
5/4
5/4
y =
-3/16*3^(1/2)+1/16*219^(1/2)
-3/16*3^(1/2)-1/16*219^(1/2)
r =
-9/16-1/48*3^(1/2)*219^(1/2)
-9/16+1/48*3^(1/2)*219^(1/2)
>>
matlab中solve解方程组
原发布者:fukbsne57343
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=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位有效数字的数值解.具体步骤如下:第一步:定义变量symsxyz...;第二步:求解[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解法如下:>>symsxy;>>[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组