ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:17.49KB ,
资源ID:588254      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-588254.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数值计算编程20个.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数值计算编程20个.docx

1、数值计算编程20个1、P11,第一题Private Sub Form_Click()Dim a, b, x, s As Doublea = 1b = 2s = 0.001Dox = (a + b) / 2If (x 3 - x - 1) * (a 3 - a - 1) 0 Thenb = xElsea = xEnd IfLoop Until Abs(x 3 - x - 1) sPrint xPrint x 3 - x - 1End Sub结果:1.2、P12,第五题Private Sub Form_Click()Dim a, x, s As Doublea = 8s = 0.001x = aD

2、op = xx = (p + a / p) / 2Loop Until Abs(x - p) sPrint xEnd Sub结果:2.9863、程序:Private Sub Form_Click()Dim i As IntegerDim t, a(0 To 3), p As Doublet = 2For i = 0 To 3a(i) = InputBox(x( & i & )=)Next ip = a(3)For i = 2 To 0 Step -1p = p * t + a(i)Next iPrint pEnd Sub结果:494、程序:Private Sub Form_Click()Dim

3、 a, b, s As Doublea = 0.2b = 1.34s = (a + b) / 2DoIf a * (1 - a) * s * (1 - s) 0 Thenb = sElsea = sEnd Ifs = (a + b) / 2Loop Until b - a 0.01Print sEnd Sub结果:0.9971093755、程序:Private Sub Form_click()Dim x, s, p As DoubleDim i As Integerx = 101s = 10p = 1 / 2 / 10i = 1Dos = s + pp = p / 2 * (-1) / 100

4、 * (2 * i - 1)i = i + 1Loop Until p 0.01Print sEnd Sub结果:10.056、拉格朗日:Private Sub Form_Click()Dim i, j, n As IntegerDim x(1 To 100), y(1 To 100), p, s, t As Doublet = 2.5n = 3For i = 1 To nx(i) = InputBox(x( & i & )=)y(i) = InputBox(y( & i & )=)Next is = 0For i = 1 To np = 1For j = 1 To nIf i j Thenp

5、 = p * (t - x(j) / (x(i) - x(j)End IfNext js = s + p * y(i)Next iPrint sEnd Sub结果:67、课堂埃尔米特插值程序:Private Sub Form_Activate()Dim x0, y0, x1, y1, g0, g1 As Doublex0 = 0y0 = 0x1 = 1y1 = 1g0 = 0g1 = 2x = 0.5a0 = -2 / (x0 - x1) 3b0 = 1 / (x0 - x1) 2 + 2 * x0 / (x0 - x1) 3a1 = -2 / (x1 - x0) 3b1 = 2 * x1 /

6、 (x1 - x0) 3 + 1 / (x1 - x0) 2k0 = 1 / (x0 - x1) 2k1 = 1 / (x1 - x0) 2l0 = (x - x1) 2 * (a0 * x + b0)l1 = (x - x0) 2 * (a1 * x + b1)gg0 = k0 * (x - x0) * (x - x1) 2gg1 = k1 * (x - x0) 2 * (x - x1)y = l0 * y0 + l1 * y1 + gg0 * g0 + gg1 * g1Print yEnd Sub结果:0.258、第一个:样条函数:Private Sub Form_Activate()Di

7、m x(3), y(3), m0, m1, m2 As DoubleDim i As IntegerFor i = 0 To 2x(i) = iy(i) = i * iNext im0 = 0m2 = 4h0 = x(1) - x(0)h1 = x(2) - x(1)a = 2 / h0b = 4 / h0 + 4 / h1c = 2 / h1d = (-6 * y(1) + 6 * y(2) / h1 2 - (6 * y(0) - 6 * y(1) / h0 2m1 = (d - a * m0 - c * m2) / bPrint m1End Sub结果:29、牛顿插值:Dim k As

8、IntegerPrivate Sub Combo1_Click()Dim i As Integerk = CInt(Combo1.Text)For i = 0 To 9Text1(2 * i).Visible = FalseText1(2 * i + 1).Visible = FalseLabel(i).Visible = FalseNext iFor i = 0 To k - 1With Label(i).Visible = True.Top = 1560 + 400 * i.Caption = 第 & i + 1 & 点:.Left = 120End WithWith Text1(2 *

9、i).Visible = True.Left = 800.Top = 1500 + 400 * iEnd WithWith Text1(2 * i + 1).Visible = True.Left = 1500.Top = 1500 + 400 * iEnd WithNext iEnd SubPrivate Sub Command1_Click()Dim i As IntegerDim s As Doubles = 0For i = 0 To k - 1s = s + ff(i) * f1(Text3.Text, i)Next iText2.Text = sEnd SubPrivate Sub

10、 Command2_Click()EndEnd SubPrivate Sub Form_Load()Dim i As IntegerFor i = 2 To 10Combo1.AddItem iNext iEnd SubFunction ff(ByVal n As Integer)Dim i As IntegerDim s As Doubles = 0If n = 0 Thenff = Text1(1).TextExit FunctionEnd IfFor i = 0 To ns = s + Text1(2 * i + 1).Text / f(i, n)Next iff = sEnd Func

11、tionFunction f(ByVal p As Integer, ByVal n As Integer)Dim i As IntegerDim s As Doubles = 1For i = 0 To nIf i p Thens = s * (Text1(2 * p).Text - Text1(2 * i).Text)End IfNext if = sEnd FunctionFunction f1(ByVal x As Double, ByVal n As Integer)Dim i As IntegerDim s As DoubleIf n = 0 Thenf1 = 1Exit Func

12、tionEnd Ifs = 1For i = 0 To n - 1s = s * (x - Text1(2 * i).Text)Next if1 = sEnd Function结果:带入(1,1),(2,4),(3,7),(4,8),(5,6)得到变量为3.5时,插值结果为7.835937510、复化辛普生算法:Private Sub Command1_Click()Dim i, n As IntegerDim s, h, x As Doublea = InputBox(请输入左端点a:)b = InputBox(请输入右端点b:)n = InputBox(请输入分段数n:)h = (b -

13、a) / ns = f(b) - f(a)x = aFor i = 1 To nx = x + h / 2s = s + 4 * f(x)x = x + h / 2s = s + 2 * f(x)Next is = h / 6 * sText1.Text = sEnd SubFunction f(ByVal x As Double)If x = 0 Thenf = 1Exit FunctionEnd Iff = Sin(x) / xEnd Function结果:当输入区间为(0,1),分8段,运行结果是0.194311、p153 第6题Private Sub Form_Load()Dim s,

14、 t, e As DoubleDim i, k As Integert = 0k = 0s = (t + 2) 0.5e = 0.001For i = 0 To 20If Abs(s - t) e Thenk = 1Exit ForEnd Ift = ss = (t + 2) 0.5Next iText1.Text = sEnd Sub结果:1.82912、p154 第18题Dim a As DoublePrivate Sub Form_Load()Dim x0, x, e As DoubleDim i As Integerx = 5e = 0.000001a = InputBox(a=)Fo

15、r i = 0 To 20x0 = xText1.Text = Text1.Text & vbCrLf & f1(x0)If f1(x0) = 0 ThenExit ForEnd Ifx = x0 - f(x0) / f1(x0)If Abs(x - x0) e ThenExit ForEnd IfNext iIf i = 20 ThenMsgBox 迭代失败!EndEnd IfText1.Text = xEnd SubFunction f(ByVal x As Double)f = x 3 - aEnd FunctionFunction f1(ByVal x As Double)f1 = 3

16、 * x 2End Function结果:2.18813、p155 第24题牛顿法Private Sub Form_Load()Dim x0, e As DoubleDim i As Integerx0 = 0e = 0.000001n = 20If f1(x0) = 0 ThenMsgBox 奇异EndEnd IfFor i = o To 20x0 = xIf f1(x) = 0 ThenMsgBox 奇异EndEnd Ifx = x0 - f(x0) / f1(x0)If Abs(x - x0) e ThenExit ForEnd IfNext iIf i = 20 ThenMsgBox

17、迭代失败!EndEnd IfText1.Text = xEnd SubFunction f(ByVal x As Double)f = x 3 + 2 * x 2 + 10 * x - 20End FunctionFunction f1(ByVal x As Double)f1 = 3 * x 2 + 4 * x + 10End Function结果:1.13714、p155 第24题弦截法Private Sub Form_Load()Dim x0, x1, e As DoubleDim i As Integerx0 = 0e = 0.000001n = 20If f1(x0) = 0 The

18、nMsgBox 奇异EndEnd Ifx1 = x0 - f(x0) / f1(x0)For i = o To 20x = x1 - f(x1) / (f(x1) - f(x0) * (x1 - x0)If Abs(x - x1) e ThenExit ForEnd Ifx1 = xNext iIf i = 20 ThenMsgBox 迭代失败!EndEnd IfText1.Text = xEnd SubFunction f(ByVal x As Double)f = x 3 + 2 * x 2 + 10 * x - 20End FunctionFunction f1(ByVal x As D

19、ouble)f1 = 3 * x 2 + 4 * x + 10End Function结果:1.56215、p155 第24题快速弦截法Private Sub Form_Load()Dim x0, x1, e As DoubleDim i As Integerx0 = 0e = 0.000001n = 20If f1(x0) = 0 ThenMsgBox 奇异EndEnd Ifx1 = x0 - f(x0) / f1(x0)For i = o To 20x0 = x1x1 = xx = x1 - f(x1) / (f(x1) - f(x0) * (x1 - x0)If Abs(x - x1)

20、e ThenExit ForEnd IfNext iIf i = 20 ThenMsgBox 迭代失败!EndEnd IfText1.Text = xEnd SubFunction f(ByVal x As Double)f = x 3 + 2 * x 2 + 10 * x - 20End FunctionFunction f1(ByVal x As Double)f1 = 3 * x 2 + 4 * x + 10End Function结果:1.49616、消去法Dim n As IntegerDim a(1 To 10, 1 To 10), b(1 To 10), x(1 To 10) A

21、s DoublePrivate Sub Combo1_Click()Dim i, j As IntegerFor i = 1 To 100Text1(i).Visible = FalseNext iFor i = 1 To 10Text2(i).Visible = FalseText3(i).Visible = FalseNext in = Combo1.TextFor i = 1 To nFor j = 1 To nWith Text1(i - 1) * n + j).Visible = True.Top = 500 * i + 200.Left = 500 * j.Height = 300

22、End WithNext jWith Text2(i).Visible = True.Top = 500 * i + 200.Left = 500 * n + 800.Height = 300End WithWith Text3(i).Visible = True.Top = 500 * i + 200.Left = 500 * n + 1800.Width = 700.Height = 300End WithNext iEnd SubPrivate Sub Command1_Click()Dim i, j, k As IntegerDim s, r As DoubleFor i = 1 To

23、 nFor j = 1 To na(i, j) = Text1(i - 1) * n + j).TextNext jb(i) = Text2(i).TextNext iFor i = 1 To n - 1For j = i + 1 To nr = a(j, i) / a(i, i)For k = i To na(j, k) = a(j, k) - r * a(i, k)Next kb(j) = b(j) - r * b(i)Next jNext iFor i = n To 1 Step -1s = b(i)If i n ThenFor j = i To ns = s - a(i, j) * x

24、(j)Next jEnd Ifx(i) = s / a(i, i)Text3(i).Text = x(i)Next iEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()Dim i As IntegerFor i = 2 To 10Combo1.AddItem iNext iEnd Sub结果:选择求解未知数个数为3,再依次输入A=2,-1,3;4,2,5;1,2,0;B=1,4,7;得到x=9,-1,-617、追赶法Private Sub Command1_Click()Dim i, j, k As Inte

25、gerDim aa(1 To 4), bb(1 To 4), cc(1 To 4), dd(1 To 4), xx(1 To 4), g(1 To 4), f(1 To 4) As DoubleDim s, r As DoubleFor i = 1 To 4If i = 1 Thenaa(i) = 0Elseaa(i) = a(i).TextEnd Ifbb(i) = b(i).TextIf i = 4 Thencc(i) = 0Elsecc(i) = c(i).TextEnd Ifdd(i) = d(i).TextNext ig(1) = dd(1) / bb(1)f(1) = -cc(1)

26、 / bb(1)For i = 2 To 4g(i) = (dd(i) - aa(i) * g(i - 1) / (aa(i) * f(i - 1) + bb(i)f(i) = -cc(i) / (aa(i) * f(i - 1) + bb(i)Next ixx(4) = g(4)x(4).Text = xx(4)For i = 3 To 1 Step -1xx(i) = g(i) + f(i) * xx(i + 1)x(i).Text = xx(i)Next iEnd SubPrivate Sub Command2_Click()EndEnd Sub结果:依次输入方程组系数A=1,1;1,2

27、,1;1,2,3;1,2;,B=3,8,20,11得到结果为X=1,2,3,4;18、高斯-赛德尔程序如下:Private Sub Command1_Click()Dim i, j As IntegerDim k, t(1 To 3), s, a(1 To 3, 1 To 3), b(1 To 3), x(1 To 3) As DoubleFor i = 1 To 3For j = 1 To 3a(i, j) = Text1(i * 3 + j - 3).TextNext jb(i) = Text2(i).Textx(i) = 0Next ik = 1Do Until k 0.0001For

28、i = 1 To 3s = b(i)For j = 1 To 3If j i ThenText4.Text = ss = s - a(i, j) * x(j)Text5.Text = sEnd IfNext jt(i) = s / a(i, i)If i = 1 Thenk = Abs(t(i) - x(i)ElseIf Abs(t(i) - x(i) k Thenk = Abs(t(i) - x(i)End Ifx(i) = t(i)Next iLoopFor i = 1 To 3Text3(i).Text = x(i)Next iEnd Sub运行结果:输入系数A=7,5,-3;5,7,1;2,1,7; B=2,4,-11得到X=-1.727,2.000,-1.36319、迭代法程序如下:Private Sub Command1_Click()Dim i, j As IntegerDim k, t(1 To 3), s, a(1 To 3, 1 To 3), b(1 To 3), x(1 To 3) As DoubleFor i = 1 To 3For j = 1 To 3a(i, j) = Text1(i * 3 + j - 3).TextNext jb(i) = Text2(i).Textx(i) = 0Next ik = 1Do Until k

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2