日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

人人小組

 qyliaowei 2016-05-03

利用單變量求解和VBA進(jìn)行批量求解 254 4

楊海從
楊海從2012-05-10 00:45
樓主

十多天前,對水質(zhì)模型參數(shù)K2的率定讓筆者甚是頭疼,特別是用VB編的程序后進(jìn)行參數(shù)輸入過程,輸?shù)目啾瓢?。前幾天專門學(xué)了一些文件和驅(qū)動的東西,感覺對處理現(xiàn)存問題不夠?qū)嵱?,就琢磨著尋求簡便的方法,還真被我找到了,很簡單,現(xiàn)記下來與大家分享。

 

一般地,遇到非線性一元方程,我們常用二分法、不動點(diǎn)迭代法、牛頓迭代法等數(shù)值方法編程求解。然而,當(dāng)需要處理大批量,多參數(shù)的此類方程時(shí),用編程的方法求解將是十分愚笨的方法。因?yàn)閮H對數(shù)據(jù)的輸入(鍵入)或者格式(文件輸入)就會讓我們煩悶不已。那么EXCEL的單變量求解將是一個(gè)十分快捷簡便的方法?,F(xiàn)敘述方法如下:

 

問題,有10個(gè)方程A*X*X+B*X-30=0,其中A={1,2,3,4……,9,10};B={2,3,4,……10,11}求解個(gè)方程的一個(gè)根(因?yàn)槲覀兘?jīng)常只需要求一個(gè)合適的參數(shù),所以這里不討論該方程根的分布情況)。

 

解決方法:

打開EXCEL,在A列輸入?yún)?shù)A的值,在B列輸入?yún)?shù)B的值,C列作為解X得盛放列,D列作為函數(shù)值,其中的函數(shù)當(dāng)然為A*X*X+B*X-30。

 

各項(xiàng)輸入完畢,請打開工具/宏/錄制新宏->在填入需要的各項(xiàng)之后點(diǎn)擊確定,即可錄制新宏了。(不要著急,您并不需要熟悉VBA,僅需要一點(diǎn)點(diǎn)的編程或者英語基礎(chǔ);當(dāng)然你可以查詞典)

錄制的宏當(dāng)然需要解決這個(gè)問題了。步驟是打開工具/單變量求解->填入各項(xiàng)

其中目標(biāo)單元格為D1,目標(biāo)值0,可變單元格C1;(各項(xiàng)很容易懂)

單擊確定,這個(gè)時(shí)候第一個(gè)方程的一個(gè)解應(yīng)該在C1單元格里。

下面進(jìn)行批量求解。

按alt+F11,打開EXCEL的VBA模塊,找到錄制的宏,你可以看的一行剛才錄制的代碼如下:

Sub Macro1()

' Macro1 Macro

' 宏由 微軟中國 錄制,時(shí)間: 2012/5/10

'

    Range("D1").GoalSeek Goal:=0, ChangingCell:=Range("C1")

End Sub

大部分需要處理這類問題的同學(xué)都基本能看明白吧(錄制宏的目的就是要我們自己弄夠明白EXCEL的內(nèi)部命令是怎么實(shí)現(xiàn)的,這種方法在學(xué)習(xí)和工作中經(jīng)常用到)

下面要對上面代碼進(jìn)行修改,已處理批量方程。

需要處理的方程有10個(gè),處理代碼如上,故而代碼如下

 

Sub Macro1()

' Macro1 Macro

' 宏由 微軟中國 錄制,時(shí)間: 2012/5/10

Dim i As Integer

    For i = 1 To 10

        Range("D" & i).GoalSeek Goal:=0, ChangingCell:=Range("C" & i)

    Next i

End Sub

 

點(diǎn)擊運(yùn)行,就搞定啦。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多