vb.net矩阵求逆 用c语言求逆矩阵
逆矩阵怎么求?
逆矩阵的求法:
矿区网站建设公司创新互联公司,矿区网站设计制作,有大型网站制作公司丰富经验。已为矿区上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的矿区做网站的公司定做!
1、利用定义求逆矩阵
设A、B都是n阶方阵, 如果存在n阶方阵B 使得AB=BA=E, 则称A为可逆矩阵, 而称B为A的逆矩阵。
2、运用初等行变换法
将一n阶可逆矩阵A和n阶单位矩阵I写成一个nX2n的矩阵B=(A,I])对B施行初等行变换,即对A与I进行完全相同的若干初等行变换,目标是把A化为单位矩阵。当A化为单位矩阵I的同时,B的右一半矩阵同时化为了A的逆矩阵。
3、增广矩阵法
如果要求逆的矩阵是A,则对增广矩阵(A E)进行初等行变换,E是单位矩阵,将A化到E,此时此矩阵的逆就是原来E的位置上的那个矩阵,原理是 A逆乘以(A E)= (E A逆)初等行变换就是在矩阵的左边乘以A的逆矩阵得到的。
4、待定系数法
待定系数法顾名思义就是对未知数进行求解。用一个新的包含未定因子的多项式来表达多项式,从而获得一个恒等式。接着,利用恒等式的特性,推导出一类系数必须满足的方程或方程,再由方程组或方程组得到待确定的系数,或确定各系数之间的对应关系,称为待定系数法。
怎样用VB编程矩阵求逆
矩阵求逆的VB程序
Private Function MRinv(N As Integer, mtxA() As Double) As Boolean
'****************************************************************************************
' 功能: 实现矩阵求逆的全选主元高斯-约当法
' 参数: n - Integer型变量,矩阵的阶数
' mtxA - Double型二维数组,体积为n x n。存放原矩阵A;返回时存放其逆矩阵A-1。
' 返回值:Boolean型,失败为False,成功为True
'****************************************************************************************
ReDim nIs(N) As Integer, nJs(N) As Integer
Dim i As Integer, j As Integer, k As Integer
Dim D As Double, p As Double
' 全选主元,消元
For k = 1 To N
D = 0#
For i = k To N
For j = k To N
p = Abs(mtxA(i, j))
If (p D) Then
D = p
nIs(k) = i
nJs(k) = j
End If
Next j
Next i
' 求解失败
If (D + 1# = 1#) Then
MRinv = False
Exit Function
End If
If (nIs(k) k) Then
For j = 1 To N
p = mtxA(k, j)
mtxA(k, j) = mtxA(nIs(k), j)
mtxA(nIs(k), j) = p
Next j
End If
If (nJs(k) k) Then
For i = 1 To N
p = mtxA(i, k)
mtxA(i, k) = mtxA(i, nJs(k))
mtxA(i, nJs(k)) = p
Next i
End If
mtxA(k, k) = 1# / mtxA(k, k)
For j = 1 To N
If (j k) Then mtxA(k, j) = mtxA(k, j) * mtxA(k, k)
Next j
For i = 1 To N
If (i k) Then
For j = 1 To N
If (j k) Then mtxA(i, j) = mtxA(i, j) - mtxA(i, k) * mtxA(k, j)
Next j
End If
Next i
For i = 1 To N
If (i k) Then mtxA(i, k) = -mtxA(i, k) * mtxA(k, k)
Next i
Next k
' 调整恢复行列次序
For k = N To 1 Step -1
If (nJs(k) k) Then
For j = 1 To N
p = mtxA(k, j)
mtxA(k, j) = mtxA(nJs(k), j)
mtxA(nJs(k), j) = p
Next j
End If
If (nIs(k) k) Then
For i = 1 To N
p = mtxA(i, k)
mtxA(i, k) = mtxA(i, nIs(k))
mtxA(i, nIs(k)) = p
Next i
End If
Next k
' 求解成功
MRinv = True
End Function
来源:
帮忙解释一下这个vb求逆矩阵语句
1采用二维数组存放矩阵各元素值
2根据数矩阵运算规则进行相应计算
求逆矩阵的简便方法
求逆矩阵的简便方法如下:
1、待定系数法。
2、伴随矩阵求逆矩阵。
3、初等变换求逆矩阵。
待定系数法,一种求未知数的方法。将一个多项式表示成另一种含有待定系数的新的形式,这样就得到一个恒等式。然后根据恒等式的性质得出系数应满足的方程或方程组,其后通过解方程或方程组便可求出待定的系数,或找出某些系数所满足的关系式。
伴随矩阵是矩阵元素所对应的代数余子式,所构成的矩阵,转置后得到的新矩阵。我们先求出伴随矩阵A*=-3,-2,1 , 1。接下来,求出矩阵A的行列式|A|=1*(-3) - (-1)* 2=-3+2=-1。从而逆矩阵A⁻¹=A*/|A| =A*/(-1)=-A*=3, 2,-1,-1。
初等变换求逆矩阵首先,写出增广矩阵A|E,即矩阵A右侧放置一个同阶的单位矩阵,得到一个新矩阵。
1,2,1,0,-1,-3,0,1。然后进行初等行变换。依次进行第1行加到第2行,得到1,2,1,0,0,-1,1,1。第2行×2加到第1行,得到1,0,3,2,0,-1,1,1。第2行×(-1),得到1,0,3,2,0,1,-1,-1。
急求:用vb编写的矩阵求逆的算法,谢谢!
Function Rect_yu(A() As Double, L As Long, C() As Double) As Double 矩阵求逆 Dim T0 As Double Dim T1 As Double Dim T2 As Double Dim T3 As Double Dim B() As Double Dim Num As Double Dim Chay As Long Dim Chax As Long Chay = 0 Chax = 0 ReDim B(L - 1, L - 1) Num = 0 Dim add As Double add = 1 / Rect(A(), L) For T0 = 0 To L For T3 = 0 To L For T1 = 0 To L - 1 If T1 T0 Then Chax = 0 Else Chax = 1 End If For T2 = 0 To L - 1 If T2 T3 Then Chay = 0 Else Chay = 1 End If B(T1, T2) = A(T1 + Chax, T2 + Chay) Next T2 Next T1 Rect(B(), L - 1) 调用求行列式值 C(T3, T0) = Rect(B(), L - 1) * add * ((-1) ^ (T0 + T3)) Next T3 Next T0End Function
本文名称:vb.net矩阵求逆 用c语言求逆矩阵
文章起源:http://myzitong.com/article/hjpgso.html