VB求解多元线性方程组的程序Word格式文档下载.docx

上传人:b****6 文档编号:21515851 上传时间:2023-01-30 格式:DOCX 页数:9 大小:138.49KB
下载 相关 举报
VB求解多元线性方程组的程序Word格式文档下载.docx_第1页
第1页 / 共9页
VB求解多元线性方程组的程序Word格式文档下载.docx_第2页
第2页 / 共9页
VB求解多元线性方程组的程序Word格式文档下载.docx_第3页
第3页 / 共9页
VB求解多元线性方程组的程序Word格式文档下载.docx_第4页
第4页 / 共9页
VB求解多元线性方程组的程序Word格式文档下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

VB求解多元线性方程组的程序Word格式文档下载.docx

《VB求解多元线性方程组的程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB求解多元线性方程组的程序Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。

VB求解多元线性方程组的程序Word格式文档下载.docx

在工程中需添加以下两个控件

简陋的界面如下:

未知数的个数与系数矩阵的行数对应

以下为代码

‘通用部分输入以下代码

OptionBase1

DimxlAppAsExcel.Application'

定义EXCEL类

DimxlBookAsExcel.Workbook'

定义工作簿类

DimxlSheetAsExcel.Worksheet'

定义工作表类

DimM,N,pAsInteger

DimA(),mtxA(),C()AsDouble

‘按键一单机事件输入

PrivateSubCMDOPEN_Click()

‘从EXCEL文件中导入方程组系数矩阵的数据

‘从Sheet1左上角开始输入,一个单元格输入一个系数,一行输入一

‘个方程

SetxlApp=CreateObject("

Excel.Application"

xlApp.Visible=True

CD1.ShowOpen

SetxlBook=xlApp.Workbooks.Open(CD1.FileName)

SetxlSheet=xlBook.Worksheets

(1)

xlSheet.Activate

xlApp.Caption="

VB程序正在调用该文件"

'

-----------------

M=Text1.Text

N=M

p=1

ReDimmtxA(M,N)

ReDimB(N,p)

ReDimC(M,p)

读系数矩阵

Fori=1ToM

Forj=1ToN

mtxA(i,j)=xlSheet.Cells(i,j)

Nextj

Nexti

矩阵求逆

t=MRinv(Int(M))

读常量矩阵

‘从Sheet2左上角开始,一单元格输入一个系数,一行输入一个

SetxlSheet=xlBook.Worksheets

(2)

B(i,1)=xlSheet.Cells(i,1)

矩阵相乘

Forj=1Top

C(i,j)=0

Fork=1ToN

C(i,j)=mtxA(i,k)*B(k,j)+C(i,j)

Nextk

‘结果输出

xlSheet.Cells(i,3)=C(i,1)

EndSub

‘系数矩阵求逆的函数(参考下面网址)

FunctionMRinv(NAsInteger)AsBoolean

ReDimnIs(N)AsInteger,nJs(N)AsInteger

DimiAsInteger,jAsInteger,kAsInteger

DimDAsDouble,pAsDouble

全选主元,消元

Fork=1ToN

D=0#

Fori=kToN

Forj=kToN

p=Abs(mtxA(i,j))

If(p>

D)Then

D=p

nIs(k)=i

nJs(k)=j

EndIf

Nexti

'

求解失败

If(D+1#=1#)Then

MRinv=False

ExitFunction

If(nIs(k)<

>

k)Then

p=mtxA(k,j)

mtxA(k,j)=mtxA(nIs(k),j)

mtxA(nIs(k),j)=p

If(nJs(k)<

Fori=1ToN

p=mtxA(i,k)

mtxA(i,k)=mtxA(i,nJs(k))

mtxA(i,nJs(k))=p

mtxA(k,k)=1#/mtxA(k,k)

If(j<

k)ThenmtxA(k,j)=mtxA(k,j)*mtxA(k,k)

If(i<

k)ThenmtxA(i,j)=mtxA(i,j)-mtxA(i,k)*mtxA(k,j)

k)ThenmtxA(i,k)=-mtxA(i,k)*mtxA(k,k)

Nextk

调整恢复行列次序

Fork=NTo1Step-1

mtxA(k,j)=mtxA(nJs(k),j)

mtxA(nJs(k),j)=p

mtxA(i,k)=mtxA(i,nIs(k))

mtxA(i,nIs(k))=p

求解成功

MRinv=True

EndFunction

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1