计算方法实验报告-数值计算方法实验报告

时间:2017-04-19 11:15:50 计算方法答案 我要投稿

计算方法实验报告范文-数值计算方法实验报告

  撰写实验报告是每个计算方法实验过后必须完成的事项。以下是阳光网小编要与大家分享的计算方法实验报告范文,供大家参考!

计算方法实验报告范文-数值计算方法实验报告

  计算方法实验报告范文(一)

  一、实验目的(黑体、四号)

  1、所解决的问题实际背景;(宋体、小四)

  2、求问题的数值解的必要性。

  二、基本理论及背景

  1、经典理论的解决方案和局限性;

  2、数值解的算法和理论推导;

  3、待解决的具体问题。

  三、算法设计及实现

  1、程序的流程及各程序模块之间的层次关系;

  2、程序文件及功能清单。

  四、实验步骤

  1、实验的具体步骤;

  2、输出结果和初步分析说明。

  五、使用说明实验结果分析

  1、调试中遇到的问题及对问题的解决方法;

  2、算法的复杂度或测量结果的精确度分析。

  六、算法的改进和实验总结

  1、算法进一步的发展和更复杂的理论介绍、改进;

  2、和自己的实验感想、经验总结。

  七、源程序(带注释)

  计算方法实验报告范文(二)

  一.题目

  对于函数 fx1

  15x2 x∈[-1,1], 取 n+1 个基点,xi=-1+ih

  (i=0,1,2,…,n),其中 h=2/n。

  ⑴对 n=2,4,6,8,10 分别作 n 次插值多项式 Pn(x),并在同一坐标系画出f(x)和 Pn(x)。

  ⑵在非节点处计算f(x)和 Pn(x)的最大相对误差;

  max1x1xxifxPnxfx n=2,4,6,8,10

  ⑶根据f(x)和 Pn(x)的图形及最大相对误差进行比较分析,试寻找插值效果较好的改进方法。

  二.算法

  思想:

  选用牛顿前插公式,用一个适当的函数Pn(x)作为f(x)的近似函数。

  1.选取等距节点并算出节点处的函数值。将区间(-1 ,1)均分成n等份,步长h为2/n,在等距节点x0,x1,x2,…,xn处,f(x)的取值分别为f0,f1,f2, …,fn。

  首先在text1中确定输入的'n值,它决定了我们接下来按几等分编写插值多项式。n为2,4,6,8,10中的某个值。

  2.计算一阶差分△f0, △f1, …, △fn-1

  f0f1f0,f1f2f1,...,fnfnfn1

  同理分别计算2f,3f,...,nf.

  在模块中定义x()数组以便于在全局中使用。

  ReDim x(n) As Single

  For i = 0 To n

  x(i) = -1 + (i * h)

  Next

  且依次为x(i)赋值,再在form2窗体中的第一列显示出来。之后,通过调用f函数来实现对f(i)的依次赋值。调用过程如下:

  Public Function f(x As Single) As Single

  f = 1 / (1 + 25 * x * x)

  End Function

  ⒊ 先将label2中的visible属性设为faulse,在代码中进行以下设置来显示插分阶数:Label2(j + 1).Visible = True,且插分阶数随着n值的变化而变化。

  ⒋在模块中定义a(),b()数组以便于在全局中使用。通过ReDim a(n, n) As Single语句将a()重新定义为二维数组,并将各阶差分值赋予该数组。此部分代码如下:

  For j = 0 To n

  a(j, 0) = f(x(j))

  Next

  For j = 1 To n

  For i = 0 To n - j

  a(i, j) = a(i + 1, j - 1) - a(i, j - 1)

  Next

  Next

  通过ReDim b(n) As String语句将多项式Pn(x)以字符串的形式用b数组表现出来。然后给b(0)赋初值f(x0):b(0) = a(0, 0),并通过以下代码来表示出含x差值多项式Pn(x):

  For i = 1 To n

  For j = 1 To i

  If x(j - 1) < 0 Then

  b(i) = b(i) & "(x + " & -x(j - 1) & ")"

  Else

  b(i) = b(i) & "(x - " & x(j - 1) & ")"

  End If

  Next

  s = a(0, i) / m(i) / h ^ i

  If s > 0 Then

  Label3.Caption = Label3.Caption & " + " & s & b(i)

  Else

  Label3.Caption = Label3.Caption & s & b(i)

  End If

  Next

  语句中为避免运行时多项式中出现(x- -x0)或a + - b的情况,因此对符号进行了修改。

  ⒌ 通过调用m函数来计算n的阶乘。

  Public Function m(x As Byte) As Long

  Dim i As Byte

  m = 1

  For i = 1 To x

  m = m * i

  Next

  End Function

  6.运行程序显示差分表和牛顿前插公式

  2nf0f0fPnxf0xx02xx0xx1...n0xx0xx1...xxn1h2hnh

  三.源程序

点击下页还有更多>>>计算方法实验报告范文