求解多元一次方程组:
f(1,1)x1+f(1,2)x2+f(1,3)x3+...=f(1,n)
f(2,1)x1+f(2,2)x2+f(2,3)x3+...=f(2,n)
f(3,1)x1+f(3,2)x2+f(3,3)x3+...=f(3,n)
......
f(m,1)x1+f(m,2)x2+f(m,3)x3+...=f(m,n)
采用高斯消元法:
Option Base 1
Function Determinant(ByRef factor) As Single
Dim i As Long, j As Long, k As Long, row As Long, order As Long
Dim r As Long, c As Long, Pivot As Single, Pivot2 As Single, temp() As Single
Determinant = 1
Dim m
m = factor
row = UBound(m, 1)
If Not UBound(m, 2) = row + 1 Then MsgBox "无解或不定解!": Exit Function
ReDim temp(1 To row)
For i = 1 To row
Pivot = 0
For j = i To row
For k = i To row
If Abs(m(k, j)) > Pivot Then
Pivot = Abs(m(k, j))
r = k: c = j
End If
Next k
Next j
If Pivot = 0 Then Determinant = 0: Exit Function
If r <> i Then
order = order + 1
For j = 1 To row
temp(j) = m(i, j)
m(i, j) = m(r, j)
m(r, j) = temp(j)
Next j
End If
If c <> i Then
order = order + 1
For j = 1 To row
temp(j) = m(j, i)
m(j, i) = m(j, c)
m(j, c) = temp(j)
Next j
End If
Pivot = m(i, i)
Determinant = Determinant * Pivot
For j = i + 1 To row
Pivot2 = m(j, i)
If Pivot2 <> 0 Then
For k = 1 To row
m(j, k) = m(j, k) - m(i, k) * Pivot2 / Pivot
Next
End If
Next
Next
Determinant = Determinant * (-1) ^ order
End Function
Sub getresult(ByRef factor(), ByRef answer As String)
Dim row As Integer, i As Integer, D0 As Single
Dim m
Dim result() As String
row = UBound(factor, 1)
ReDim result(1 To row)
D0 = Determinant(factor)
If D0 = 0 Then MsgBox "无解!": Exit Sub
For i = 1 To row
m = factor
For j = 1 To row
m(j, i) = factor(j, row + 1)
Next
result(i) = "X" & i & "= " & Format(Determinant(m) / D0, "0.00") ' Di/D0
Next
answer = Join(result, vbCrLf)
End Sub
Private Sub Command1_Click()
Dim Param(3, 4) ' 三元一次方程组
Dim i As Integer
For i = 1 To 4
Param(1, i) = Choose(i, 1, 1, 1, 6) ' x1+x2+x3=6
Param(2, i) = Choose(i, 2, -1, 3, 5) ' 2x1-x2+3x3=5
Param(3, i) = Choose(i, 4, 2, -3, 3) '4x1+2x2-3x3=3
Next
Dim answer As String
getresult Param, answer
Debug.Print answer
End Sub
返回:
X1= 0.83
X2= 3.04
X3= 2.13
分享到:
相关推荐
环星多元线性方程组计算器0.89β 界面操作简单,利用线性代数的知识解多软一次方程组
多元一次方程组(二元一次方程组,三元一次方程组,四元一次方程组等)的三种算法,是本人在myeclipse10下编写出来的,并测试成功,很方便调用。希望带给大家惊喜~~
多元一次方程组解方程源代码,工程大型方程一般都是稀疏矩阵,共轭梯度法计算速度快,精度高
简述了 牛顿--拉夫逊迭代求解的方法,用于多元非线性方程组求解,提供了简单理解的案例,并给出了完整可以运行的matlab代码,提供了matlab案例代码
多元方程组求解,自己写的
用于求解多元一次方程组,按照EXCEL提示输入各项系数即可求解
通过牛顿方法解决多元二次非线性方程(根据数学分析书内容),将程序分为函数值求解,雅各比矩阵求解,线性方程组牛顿求解和主程序三部分,线性方程组求解采用高斯列消元方法。如果有需要,函数和雅各比矩阵需要按需...
以一个四元非齐次线性方程组为例,给出了求解多元线性方程组的Matlab代码
vs2010工程C++实现 利用最小二乘法实现多元一次方程线性拟合。 利用递归方法求逆矩阵,所以高阶矩阵(9阶以上)会比较慢。
背景:如何使用python求解多元多次方程组或者非线性方程组。 原创内容,转载注明出处!请勿用于商业用途! (上篇用python拟合2019nCov感染人数的文章被不少博主转载了,发的比较早,不少博主在文章基础上添加新内容...
很简单的程序,可以接多元一次方程组,在数值计算和线性代数中应用。
此资源是我自己以前写的一篇随笔(word格式),对牛顿迭代法进行了讲解,并利用matlab进行一元非线性方程以及多元非线性方程组的仿真,附带详细注释,并输出每次迭代的结果,对于学习牛顿迭代法和matlab的新手会有...
用MATLAB求解微分方程及微分方程组方法介绍和例子。Matlab
Javascript写的数据结构实验 多项式运算及线性方程组求解,高分代码
解二元一次方程组(可以扩展至解多元多次方程组)解二元一次方程组(可以扩展至解多元多次方程组)解二元一次方程组(可以扩展至解多元多次方程组)解二元一次方程组(可以扩展至解多元多次方程组)
使用matlab解决二元二阶微分方程组的求解问题,并画出包括极坐标图在内的多幅变量间的关系图
基于改进人工鱼群算法求解多元非线性方程组,是对人工鱼群算法一种改进,里面包括算法的原理,叙述的比较简单,初学者看了比较明白
(原创)利用克拉默法则求解多元一次方程组.doc
MATLAB求解非线性方程组 fsolve
可以进行一元多次方程的计算,可以以分数形式输出答案。