




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄第一章 非線性方程求根····················31.1迭代法··························
2、3;···········31.2牛頓法·····································
3、83;41.3弦截法······································51.4二分法·········&
4、#183;····························6第二章 插值····················
5、···········72.1線性插值····································72.2二次插值
6、183;···································82.3拉格朗日插值············
7、3;···················92.4分段線性插值·····························
8、··102.5分段二次插值·······························11第三章 數(shù)值積分·············
9、83;············133.1復(fù)化矩形積分法·····························133.2復(fù)化梯形積分法····
10、83;························143.3辛普森積分法·······················
11、3;·······153.4變步長梯形積分法···························16第四章 線性方程組數(shù)值法···········&
12、#183;······174.1約當(dāng)消去法·································17 4.2高斯消去法······
13、3;··························184.3三角分解法······················
14、···········204.4雅可比迭代法································214.5高斯賽德爾迭代法···
15、·······················23第五章 常積分方程數(shù)值法··················255.1顯示歐拉公式法····
16、3;·························255.2歐拉公式預(yù)測校正法······················
17、183;···26 5.3改進(jìn)歐拉公式法······························275.4四階龍格庫塔法············&
18、#183;···············28數(shù)值計算方法第一章 非線性方程求根1.1迭代法程序代碼:Private Sub Command1_Click()x0 = Val(InputBox("請輸入初始值x0")ep = Val(InputBox(請輸入誤差限ep)f = 0While f = 0X1 = (Exp(2 * x0) - x0) / 5If Abs(X1 - x0) < ep ThenPrint X1f
19、= 1Elsex0 = X1End IfWendEnd Sub例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)1.2牛頓法程序代碼:Private Sub Command1_Click()b = Val(InputBox("請輸入被開方數(shù)x0")ep = Val(InputBox(請輸入誤差限ep)f = 0While f = 0X1 = x0 - (x0 2 - b) / (2 * b)If Abs(X1 - x0) < ep ThenPrint X1f = 1Elsex0 = X1End IfWendEnd Sub例:求的值。(ep=10-
20、10)1.3弦截法程序代碼:Private Sub Command1_Click()x0 = Val(InputBox("請輸入第一個初始值x0")X1 = Val(InputBox("請輸入第二個初始值x1")ep = Val(InputBox("請輸入誤差限ep")f = 0While f = 0X2 = X1 - (X1 8 - 13) * (X1 - x0) / (X1 8 - 13) - (x0 8 - 13)If Abs(X2 - X1) < ep ThenPrint X2f = 1Elsex0 = X1X1 = X
21、2End IfWendEnd Sub例:求f(x)=x8-13的正根(初始值x1=1,x2=10,ep=10-10)1.4二分法程序代碼:Private Sub Command1_Click()a = Val(InputBox("請輸入?yún)^(qū)間端點(diǎn)a")b = Val(InputBox("請輸入?yún)^(qū)間端點(diǎn)b")ep = Val(InputBox("請輸入誤差限ep")f = 0While f = 0x = (a + b) / 2fx = Exp(-x / 7) * (9 - 2 * x) - 8fa = Exp(-a / 7) * (9 -
22、 2 * a) - 8If fx = 0 Thenf = 1Print "方程的根是", xElseIf fa * fx > 0 Thena = xElseb = xEnd IfIf Abs(b - a) < ep Thenx = (b + a) / 2f = 1Print "方程的根是", xEnd IfEnd IfWendEnd Sub例:求方程f(x)=e-7/x(9-2x)-8在區(qū)間0,1內(nèi)的實(shí)根。(ep=10-10)第2章 插 值2.1線性插值程序代碼:Private Sub Command1_Click()X0 = Val(Inp
23、utBox("請輸入第一個結(jié)點(diǎn)X:")Y0 = Val(InputBox("請輸入第一個結(jié)點(diǎn)Y:")X1 = Val(InputBox("請輸入第二個結(jié)點(diǎn)X:")Y1 = Val(InputBox("請輸入第二個結(jié)點(diǎn)Y:")f = 0While f = 0x = Val(InputBox("請輸入未知點(diǎn)的自變量值X:")L0 = (x - X1) / (X0 - X1)L1 = (x - X0) / (X1 - X0)y = L0 * Y0 + L1 * Y1Print "x=&quo
24、t; x, "y=" yf = Val(InputBox("是否繼續(xù)(0/1):")WendEnd Sub例:已知兩點(diǎn)(13 , 1)、(49 , 8),求30處的值。2.2二次插值程序代碼:Private Sub Command1_Click()X0 = Val(InputBox("請輸入第一個結(jié)點(diǎn)X:")Y0 = Val(InputBox("請輸入第一個結(jié)點(diǎn)Y:")X1 = Val(InputBox("請輸入第二個結(jié)點(diǎn)X:")Y1 = Val(InputBox("請輸入第二個結(jié)點(diǎn)Y
25、:")X2 = Val(InputBox("請輸入第三個結(jié)點(diǎn)X:")Y2 = Val(InputBox("請輸入第三個結(jié)點(diǎn)Y:")f = 0While f = 0x = Val(InputBox("請輸入未知點(diǎn)的自變量值X:")L0 = (x - X1) * (x - X2) / (X0 - X1) / (X0 - X2)L1 = (x - X0) * (x - X2) / (X1 - X0) / (X1 - X2)L2 = (x - X0) * (x - X1) / (X2 - X0) / (X2 - X1)y = L0
26、* Y0 + L1 * Y1 + L2 * Y2Print "x=" x, "y=" yf = Val(InputBox("是否繼續(xù)(0/1):")WendEnd Sub例:已知三點(diǎn)(81 ,9)、(100 ,10)、(121 ,10),求98處的值。2.3拉格朗日插值程序代碼:Private Sub Command1_Click()Dim x(), y()n = Val(InputBox("請輸入插值節(jié)點(diǎn)數(shù)N")ReDim x(n), y(n)For i = 0 To nx(i) = Val(InputBox(&
27、quot;請輸入插值節(jié)點(diǎn)x(" + Str(i) + ")")y(i) = Val(InputBox("請輸入插值節(jié)點(diǎn)y(" + Str(i) + ")")Next if = 0While f = 0xx = Val(InputBox("請輸入未知點(diǎn)的自變量x:")Sum = 0For i = 0 To nt = 1For j = 0 To nIf j <> i Thent = t * (xx - x(j) / (x(i) - x(j)End IfNext jSum = Sum + t * y
28、(i)Next iPrint "x=" xx, "y=" Sumf = Val(InputBox("是否繼續(xù)(0/1)")WendEnd Sub例:已知四點(diǎn)(100 ,10)、(81 ,9)、(64 ,8)、(49 ,7),求87 處的值。2.4分段線性插值程序代碼:Private Sub Command1_Click()Dim x(), y()n = Val(InputBox("請輸入插值節(jié)點(diǎn)數(shù)N")ReDim x(n), y(n)For i = 0 To nx(i) = Val(InputBox("請
29、輸入插值節(jié)點(diǎn)x(" + Str(i) + ")")y(i) = Val(InputBox("請輸入插值節(jié)點(diǎn)y(" + Str(i) + ")")Next if = 0While f = 0xx = Val(InputBox("請輸入未知點(diǎn)的自變量x:")L = 0j = 1While L = 0If xx < x(j) Thenk = j + 1L = 1Elsej = j + 1If j > n - 1 Thenk = n - 1L = 1End IfEnd IfWendl0 = (xx -
30、 x(k) / (x(k - 1) - x(k)l1 = (xx - x(k - 1) / (x(k) - x(k - 1)yy = l0 * y(k - 1) + l1 * y(k)Print "x=" xx, "y=" yyf = Val(InputBox("是否繼續(xù)(0/1)")WendEnd Sub例:已知三點(diǎn)(361 , 19)、(324 ,18)、(289 ,17),N=2,求300處的值。2.5分段二次插值程序代碼:Private Sub Command1_Click()Dim x(), y()n = Val(Input
31、Box("請輸入插值節(jié)點(diǎn)數(shù)N")ReDim x(n), y(n)For i = 0 To nx(i) = Val(InputBox("請輸入插值節(jié)點(diǎn)x(" + Str(i) + ")")y(i) = Val(InputBox("請輸入插值節(jié)點(diǎn)y(" + Str(i) + ")")Next if = 0While f = 0xx = Val(InputBox("請輸入未知點(diǎn)的自變量x:")If x0 < x(1) Thenk = 1f = 1End Ifi = 2Do W
32、hile f = 0 And i >= n - 1If x0 < x(i) ThenIf x0 - x(i - 1) < x(i) - x0 Thenk = i - 1f = 1Elsek = if = 1End IfElsei = i + 1End IfLoopIf f = 0 Thenk = n - 1End Ifl1 = (xx - x(k + 1) * (xx - x(k) / (x(k - 1) - x(k + 1) * (x(k - 1) - x(k)l2 = (xx - x(k + 1) * (xx - x(k - 1) / (x(k) - x(k + 1) *
33、 (x(k) - x(k - 1)l3 = (xx - x(k) * (xx - x(k - 1) / (x(k + 1) - x(k) * (x(k + 1) - x(k - 1)yy = l1 * y(k - 1) + l2 * y(k) + l3 * y(k + 1)Print "x=" xx, "y=" yyf = Val(InputBox("是否繼續(xù)(0/1)")WendEnd Sub例:已知三點(diǎn)(225 , 15)、(196 ,14)、(169 ,13),求180處的值。第3章 數(shù)值積分3.1 復(fù)化矩形積分法程序代碼:Pr
34、ivate Sub Command1_Click()a = Val(InputBox("請輸入積分下限a")b = Val(InputBox("請輸入積分上限b")n = Val(InputBox("請輸入積分區(qū)間等分?jǐn)?shù)N")h = (b - a) / nSum = 0For i = 1 To nSum = Sum + (a + (i - 0.5) * h) 2Next ir = h * SumPrint "復(fù)化矩形積分法計算結(jié)果:" rEnd Sub 例:求X2在區(qū)間3,5的積分值,等分區(qū)間為100。3.2復(fù)化梯
35、形積分法程序代碼:Private Sub Command1_Click()a = Val(InputBox("請輸入積分下限a")b = Val(InputBox("請輸入積分上限b")n = Val(InputBox("請輸入積分區(qū)間等分?jǐn)?shù)N")h = (b - a) / nSum = 0For i = 1 To n - 1Sum = Sum + (a + i * h) 2Next it = h * (a 2 + b 2) / 2 + h * SumPrint "復(fù)化梯形積分法計算結(jié)果:" tEnd Sub例:求
36、X2在區(qū)間3,5的積分值,等分區(qū)間為100。3.3辛普生積分法程序代碼:Private Sub Command1_Click()a = Val(InputBox("請輸入積分下限A:")b = Val(InputBox("請輸入積分上限B:")n = Val(InputBox("請輸入積分區(qū)間等分?jǐn)?shù)N:")h = (b - a) / nSum = 0w = a + h / 2While w < bSum = Sum + (w - h / 2) 2 + 4 * w 2 + (w + h / 2) 2w = w + hWends =
37、 Sum * h / 6Print "辛普生積分法計算結(jié)果:" sEnd Sub例:求X2在區(qū)間3,5的積分值,等分區(qū)間為100。3.4變步長梯形積分法程序代碼:Private Sub Command1_Click()a = Val(InputBox("請輸入積分下限a:")b = Val(InputBox("請輸入積分上限b:")ep = Val(InputBox("請輸入誤差限ep:")n = 1h = b - at1 = h * (a 2 + b 2) / 2f = 0While f = 0Sum = 0Fo
38、r i = 1 To n - 1Sum = Sum + (a + (i - 1 / 2) * h) 2Next iT2 = t1 / 2 + h * Sum / 2If Abs(T2 - t1) < ep ThenPrint T2f = 1Elset1 = T2h = h / 2n = 2 * nEnd IfWendEnd Sub例:求X2在區(qū)間3,5的積分值,誤差限ep=0.0001。第4章 線性方程組數(shù)值解法4.1 約當(dāng)消去法程序代碼:Private Sub Command1_Click()Dim a()n = Val(InputBox("請輸入方程的個數(shù)N:")
39、ReDim a(n, n + 1)For i = 1 To nFor j = 1 To n + 1a(i, j) = Val(InputBox("請輸入增廣矩陣A(" + Str(i) + "," + Str(j) + ")=")Next jNext iFor k = 1 To nm = a(k, k)For j = k To n + 1a(k, j) = a(k, j) / mNext jFor i = 1 To nIf i <> k Thenm = a(i, k)For j = k To n + 1a(i, j) =
40、a(i, j) - a(k, j) * mNext jEnd IfNext iNext kFor i = 1 To nPrint "x(" + Str(i) + ")=" a(i, n + 1)Next iEnd Sub例:已知方程組,求X1 X2 X3的值。 X1+ X2+ X3=20 2X1+3X2+ X3=38 X1+4X2+ X3=35 4.2 高斯消去法程序代碼:Private Sub Command1_Click()Dim a(), x()n = Val(InputBox("請輸入方程個數(shù)N:")ReDim a(n, n
41、+ 1), x(n)For i = 1 To nFor j = 1 To n + 1a(i, j) = Val(InputBox("請輸入增廣矩陣A(" + Str(i) + "," + Str(j) + "):")Next jNext iFor k = 1 To n - 1m = a(k, k)For j = k To n + 1a(k, j) = a(k, j) / mNext jFor i = k + 1 To nm = a(i, k)For j = k To n + 1a(i, j) = a(i, j) - a(k, j) *
42、 mNext jNext iNext kx(n) = a(n, n + 1) / a(n, n)For i = n - 1 To 1 Step -1Sum = 0For j = i + 1 To nSum = Sum + a(i, j) * x(j)Next jx(i) = a(i, n + 1) - SumNext iFor i = 1 To nPrint "x(" + Str(i) + ")=" x(i)Next iEnd Sub例:已知方程組,求X1 X2 X3的值。2X1+5X2+ X3=21 4X1+3X2+3X3=31 X1+3X2+2X3=
43、16 4.3 三角分解法程序代碼:Private Sub Command1_Click()Dim a(), b(), l(), u(), x(), y()n = Val(InputBox("請輸入方程個數(shù)N:")ReDim a(n, n), b(n), l(n, n), u(n, n), x(n), y(n)For i = 1 To nFor j = 1 To na(i, j) = Val(InputBox("請輸入系數(shù)矩陣A(" + Str(i) + "," + Str(j) + "):")Next jb(i)
44、= Val(InputBox("請輸入右端常數(shù)項B(" + Str(i) + "):")Next iFor i = 1 To nFor j = 1 To nIf i > j ThenSum = 0For k = 1 To j - 1Sum = Sum + l(i, k) * u(k, j)Next kl(i, j) = (a(i, j) - Sum) / u(j, j)ElseSum = 0For k = 1 To i - 1Sum = Sum + l(i, k) * u(k, j)Next ku(i, j) = a(i, j) - SumEnd
45、IfNext jNext iFor i = 1 To nSum = 0For j = 1 To i - 1Sum = Sum + l(i, j) * y(j)Next jy(i) = b(i) - SumNext iFor i = n To 1 Step -1Sum = 0For j = i + 1 To nSum = Sum + u(i, j) * x(j)Next jx(i) = (y(i) - Sum) / u(i, i)Next iFor i = 1 To nPrint "x(" + Str(i) + ")=" x(i)Next iEnd Sub
46、例:已知方程組,求X1 X2 X3的值。2X1+3X2+4X3=38 X1+7X2+3X3=65 5X1+2X2+ X3=33 4.4 雅可比迭代法程序代碼:Dim a(), b(), x0(), x()n = Val(InputBox("請輸入方程個數(shù)N:")ReDim a(n, n), b(n), x0(n), x(n)ep = Val(InputBox("請輸入誤差限EP:")nmax = Val(InputBox("請輸入最大迭代次數(shù)Nmax:")For i = 1 To nFor j = 1 To na(i, j) = Va
47、l(InputBox("請輸入系數(shù)矩陣A(" + Str(i) + "," + Str(j) + "):")Next jb(i) = Val(InputBox("請輸入右端常數(shù)項B(" + Str(i) + "):")Next iFor i = 1 To nx0(i) = Val(InputBox("請輸入初始解X0(" + Str(i) + "):")Next ik = 0f = 0While f = 0Max = 0For i = 1 To nSum
48、= 0For j = 1 To nSum = Sum + a(i, j) * x0(j)Next jd = (b(i) - Sum) / a(i, i)x(i) = x0(i) + dIf Max < Abs(d) ThenMax = Abs(d)End IfNext ik = k + 1If Max < ep Then For i = 1 To n Print "x(" + Str(i) + ")=" x(i) Next i f = 1Else If k > nmax Then Print "迭代失敗" f = 1
49、 Else For i = 1 To n x0(i) = x(i) Next i End IfEnd IfWendEnd Sub例:已知方程組,求X1 X2 X3 X4的值。(ep=0.0001,最大迭代次數(shù)1000,初始值均為0)7X1+2X2+3X3+ X4=5 X1+5X2+2X3+ X4=42X1+ X2+8X3+3X4=2 X1+4X2+ X3+7X4=74.5 高斯-賽德爾迭代法程序代碼:Private Sub Command1_Click()Dim a(), b(), x()n = Val(InputBox("請輸入方程個數(shù)N:")ep = 0.0001nma
50、x = 10000ReDim a(n, n), b(n), x(n)For i = 1 To nFor j = 1 To na(i, j) = Val(InputBox("請輸入系數(shù)矩陣A(" + Str(i) + "," + Str(j) + "):")Next jb(i) = Val(InputBox("請輸入右端常數(shù)項b(:" + Str(i) + "):")Next iFor i = 1 To nx(i) = Val(InputBox("請輸入初始解X(:" + St
51、r(i) + "):")Next ik = 0f = 0While f = 0Max = 0For i = 1 To nSum = 0For j = 1 To nSum = Sum + a(i, j) * x(j)Next jd = (b(i) - Sum) / a(i, i)x(i) = x(i) + dIf Max < Abs(d) ThenMax = Abs(d)End IfNext ik = k + 1If Max < ep ThenFor i = 1 To nPrint "x(" + Str(i) + ")="
52、x(i)Next if = 1ElseIf k > nmax ThenPrint "迭代失敗"f = 1End IfEnd IfWendEnd Sub例:已知方程組,求X1 X2 X3的值。(初始值均為0)5X1+ X2+2X3=2 X1+3X2+ X3=8 3X1+ X2+7X3=6第5章 常微分方程的數(shù)值解5.1顯示歐拉法程序代碼:Private Sub Command1_Click()x0 = Val(InputBox("請輸入自變量初始值x0")y0 = Val(InputBox("請輸入自變量初始值y0")xn = Val(InputBox("請輸入自變量值終值xn")n = Val(InputBox("請輸入?yún)^(qū)間等分?jǐn)?shù)")h = (xn - x0) / nX1 = x0 + hIf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械銷售工作總結(jié)6篇
- 2024-2025學(xué)年度環(huán)保局考試模擬試題含完整答案詳解
- 2024“安全生產(chǎn)事故隱患排查”知識競賽試題預(yù)測試卷附參考答案詳解
- 建筑公司施工現(xiàn)場垃圾分類投放制度
- 建筑公司單位工程實(shí)測偏差整改制度
- 2024年江西吉安井岡山大學(xué)資產(chǎn)經(jīng)營公司招聘真題
- 建筑公司地鐵工程注漿填充密實(shí)度檢測制度
- 建筑公司房建項目門窗塞縫質(zhì)量控制制度
- 相變冷卻原理下的永磁齒輪熱管散熱優(yōu)化設(shè)計與實(shí)驗(yàn)探索
- 湖北鄂州華容區(qū)公益性崗位招聘筆試真題2024
- 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修二第三單元項目五《規(guī)劃并連接數(shù)字家庭系統(tǒng)的網(wǎng)絡(luò)-組建小型信息系統(tǒng)網(wǎng)絡(luò)(一)》說課稿
- 石油行業(yè)設(shè)備管理規(guī)范
- 汕頭市防汛防旱防風(fēng)防凍應(yīng)急預(yù)案
- 2023年高考遼寧卷化學(xué)真題(解析版)
- (修訂版)糧油質(zhì)量檢驗(yàn)員理論考試復(fù)習(xí)題庫-上(單選題)
- 2023-2024學(xué)年廣東省深圳市福田區(qū)七年級(下)期末數(shù)學(xué)答案
- 2024版商戶入駐合同
- 和公司直播合作協(xié)議書范本
- 兒科護(hù)理學(xué)高職全套教學(xué)課件
- 光伏發(fā)電工程建設(shè)標(biāo)準(zhǔn)工藝手冊(2023版)
- 北師大版八年級數(shù)學(xué)下冊常考題專練專題18平行四邊形中的周長和面積問題(原卷版+解析)
評論
0/150
提交評論