数值计算方法大作业

上传人:ni****g 文档编号:497096910 上传时间:2022-10-05 格式:DOC 页数:31 大小:195.50KB
返回 下载 相关 举报
数值计算方法大作业_第1页
第1页 / 共31页
数值计算方法大作业_第2页
第2页 / 共31页
数值计算方法大作业_第3页
第3页 / 共31页
数值计算方法大作业_第4页
第4页 / 共31页
数值计算方法大作业_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数值计算方法大作业》由会员分享,可在线阅读,更多相关《数值计算方法大作业(31页珍藏版)》请在金锄头文库上搜索。

1、目录第一章 非线性方程求根31.1迭代法31.2牛顿法41.3弦截法51.4二分法6第二章 插值72.1线性插值72.2二次插值82.3拉格朗日插值92.4分段线性插值102.5分段二次插值11第三章 数值积分133.1复化矩形积分法133.2复化梯形积分法143.3辛普森积分法153.4变步长梯形积分法16第四章 线性方程组数值法174.1约当消去法17 4.2高斯消去法184.3三角分解法204.4雅可比迭代法214.5高斯赛德尔迭代法23第五章 常积分方程数值法255.1显示欧拉公式法255.2欧拉公式预测校正法26 5.3改进欧拉公式法275.4四阶龙格库塔法28数值计算方法第一章 非

2、线性方程求根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 = 1Elsex0 = X1End IfWendEnd Sub例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)1.2牛顿法程序代码:Private Sub Command1_Click()b = Val(InputBox(请输

3、入被开方数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-10)1.3弦截法程序代码:Private Sub Command1_Click()x0 = Val(InputBox(请输入第一个初始值x0)X1 = Val(InputBox(请输入第二个初始值x1)ep = Val(InputBox(请输入误差限ep)f = 0While f

4、= 0X2 = X1 - (X1 8 - 13) * (X1 - x0) / (X1 8 - 13) - (x0 8 - 13)If Abs(X2 - X1) 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在区间0,1内的实根。(ep=10-10)第二章 插 值2.1线性插值程序代码:Private Sub Command1_Click()X0 = Val(InputBox(请输入第一个结

5、点X:)Y0 = Val(InputBox(请输入第一个结点Y:)X1 = Val(InputBox(请输入第二个结点X:)Y1 = Val(InputBox(请输入第二个结点Y:)f = 0While f = 0x = Val(InputBox(请输入未知点的自变量值X:)L0 = (x - X1) / (X0 - X1)L1 = (x - X0) / (X1 - X0)y = L0 * Y0 + L1 * Y1Print x=; x, y=; yf = Val(InputBox(是否继续(0/1):)WendEnd Sub例:已知两点(13 , 1)、(49 , 8),求30处的值。2.2

6、二次插值程序代码:Private Sub Command1_Click()X0 = Val(InputBox(请输入第一个结点X:)Y0 = Val(InputBox(请输入第一个结点Y:)X1 = Val(InputBox(请输入第二个结点X:)Y1 = Val(InputBox(请输入第二个结点Y:)X2 = Val(InputBox(请输入第三个结点X:)Y2 = Val(InputBox(请输入第三个结点Y:)f = 0While f = 0x = Val(InputBox(请输入未知点的自变量值X:)L0 = (x - X1) * (x - X2) / (X0 - X1) / (X0

7、 - X2)L1 = (x - X0) * (x - X2) / (X1 - X0) / (X1 - X2)L2 = (x - X0) * (x - X1) / (X2 - X0) / (X2 - X1)y = L0 * Y0 + L1 * Y1 + L2 * Y2Print x=; x, y=; yf = Val(InputBox(是否继续(0/1):)WendEnd Sub例:已知三点(81 ,9)、(100 ,10)、(121 ,10),求98处的值。2.3拉格朗日插值程序代码:Private Sub Command1_Click()Dim x(), y()n = Val(InputBo

8、x(请输入插值节点数N)ReDim x(n), y(n)For i = 0 To nx(i) = Val(InputBox(请输入插值节点x( + Str(i) + )y(i) = Val(InputBox(请输入插值节点y( + Str(i) + )Next if = 0While f = 0xx = Val(InputBox(请输入未知点的自变量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(i)Next

9、iPrint x=; xx, y=; Sumf = Val(InputBox(是否继续(0/1))WendEnd Sub例:已知四点(100 ,10)、(81 ,9)、(64 ,8)、(49 ,7),求87 处的值。2.4分段线性插值程序代码:Private Sub Command1_Click()Dim x(), y()n = Val(InputBox(请输入插值节点数N)ReDim x(n), y(n)For i = 0 To nx(i) = Val(InputBox(请输入插值节点x( + Str(i) + )y(i) = Val(InputBox(请输入插值节点y( + Str(i) + )Next if = 0While f = 0xx = Val(InputBox(请输入未知点的自变量x:)L = 0j = 1While L = 0If xx n - 1 Thenk = n - 1L = 1End IfEnd IfWendl0 = (xx - 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(是否继续(0/1))WendEnd Sub例:已知

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑图集

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号