农大贾德彬《数值计算方法》作业.docx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值计算方法 PAGE2 / NUMPAGES34 一.非线性方程的数值解法 1.迭代法求方程的根 例题 求f(x)=ex-3x=0在x=0.5附近的根 (误差上限0.001) VB代码 Private Sub Command1_Click() Dim x1, x, ep, g As Single x = Val(InputBox(请输入初始值, 求解方程的根)) ep = Val(InputBox(请输入误差上限, 误差上限, 0.001)) Do x1 = x x = (Exp(x) - x) / 2 Loop Until Abs(x - x1) ep g = MsgBox(方程e^x-3x=0的根 + Str(x)) End Sub 结果 2.牛顿法求被开方数 例题 求被开方数14,精确到后6位 VB代码 Private Sub Command1_Click() Dim x!, x0!, e!, f! f = Val(InputBox(请输入被开方数)) e = Val(InputBox(请输入误差上限)) x = 1 Do x0 = x x = (x + (f / x)) / 2 Loop Until Abs(x - x0) e Print f;开方后为:; x End Sub 结果 3.二分法求方程的根 例题 求2^x-4*x=0在[1,10]内的实根,精确到小数点后4位 VB代码 Private Sub Command1_Click() Dim x!, x1!, x2!, ep!, f!, f1!, a! x1 = Val(InputBox(请输入初始坐标x1, 二分法)) x2 = Val(InputBox(请输入初始坐标x2, 二分法)) ep = Val(InputBox(请输入误差上限ep, 二分法)) While Abs(x1 - x2) ep x = (x1 + x2) / 2 f = 2 ^ x - 4 * x f1 = 2 ^ x1 - 4 * x1 If f * f1 0 Then x1 = x ElseIf f = 0 Then a = MsgBox(方程2^x-4*x=0的根为 + Str(x)) ElseIf f * f1 0 Then x2 = x End If Wend a = MsgBox(方程2^x-4*x=0在的根为 + Str(x)) End Sub 结果 4.弦截法求方程的根 例题 求xex-1=0在(5,6)内的根,误差上限为0.001 VB代码 Private Sub Command1_Click() Dim x0!, x1, x!, ep!, g!, f!, a! x0 = Val(InputBox(请输入初始值项x0, 弦截法)) x1 = Val(InputBox(请输入初始值项x1, 弦截法)) ep = Val(InputBox(请输入误差上限ep, 弦截法)) While Abs(x0 - x1) ep f = x0 * Exp(x0) - 1 g = x1 * Exp(x1) - 1 x = x0 - ((f / (g - f)) * (x1 - x0)) x0 = x1 x1 = x Wend a = MsgBox(方程x*e^x-1=0的根为 + Str(x)) End Sub 结果 二.插值 1.低次插值 例题 已知:(4,4),(6,6) 求:5处的值 VB代码 Private Sub Command1_Click() Dim x0!, y0!, x1!, y1!, x!, f!, g!, y!, a! x0 = Val(InputBox(请输入初始坐标x0, 插值)) y0 = Val(InputBox(请输入初始坐标y0, 插值)) x1 = Val(InputBox(请输入初始坐标x1, 插值)) y1 = Val(InputBox(请输入初始坐标y1, 插值)) x = Val(InputBox(请输入插值坐标x, 插值)) f = (x - x1) / (x0 - x1) g = (x - x0) / (x1 - x0) y = (f * y0) + (g * y1) a = MsgBox(插值坐标为 + Str(x) + 的插值为 + Str(y)) End Sub 结果 2.拉格朗日插值 例题 已知(2,5)(3,7)求6处的值 VB代码 Private Sub Command1_Click() Dim x() Dim y() Dim n!, i!, j!, r!, t!, s!, a!, f! f = 6 n = Val(InputBox(请输入插值个数, 拉格朗日插值)) ReDim x(n - 1) ReDim

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档