计算方法与实习报告_第1页
计算方法与实习报告_第2页
计算方法与实习报告_第3页
计算方法与实习报告_第4页
计算方法与实习报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算方法实验 第 1 页 共 13 页 实习题 1 1 用用 2 种不同的顺序计算种不同的顺序计算 分析其误差的变化 分析其误差的变化 10000 2 1 1 644834 n n 思路 采用迭代法用思路 采用迭代法用 C 来编程实现 一种用正序即来编程实现 一种用正序即 n 从从 1 到到 10000 取值 另一种用逆序取值 另一种用逆序 一一 正序 采用递增的算法 将正序 采用递增的算法 将 n 从从 1 到到 10000 进行进行的累加求和 的累加求和 2 n 1 程序代码为 程序代码为 include include using namespace std void main float sum 0 int n 1 while n 10000 sum sum float 1 n n n cout The sum that from min to max is sum 2 运行输出的结果为 运行输出的结果为 The sum that from max to min is 1 64473 二二 逆序 采用递减的算法 将逆序 采用递减的算法 将 n 从从 10000 到到 1 进行进行的累加求和 的累加求和 2 n 1 程序代码为 程序代码为 include include using namespace std void main float sum 0 int n 10000 while n 0 sum sum double 1 n n n cout The sum that from max to min is sum 2 运行输出的结果为 运行输出的结果为 The sum that from min to max is 1 64483 计算方法实验 第 2 页 共 13 页 结果分析 由运行的结果可以看出正序的结果为结果分析 由运行的结果可以看出正序的结果为 1 644731 64473 逆序的结果为 逆序的结果为 1 644831 64483 而题目所给出的精确值为 而题目所给出的精确值为 1 6448341 644834 可以发现从小到大求和比从大 可以发现从小到大求和比从大 到小求和更接近实际值 因为在从大到小的求解过程中 会出现大数到小求和更接近实际值 因为在从大到小的求解过程中 会出现大数 吃掉吃掉 小数的现象 从而造成较大误差 小数的现象 从而造成较大误差 实习题 2 1 用牛顿法求下列方程的根 用牛顿法求下列方程的根 2 0 x xe 思路 思路 给定初始值给定初始值 x0 为根的容许误差 为根的容许误差 为为 f x 的容许误差 的容许误差 N 为迭代次数的容许为迭代次数的容许 值 在满足根的容许误差 函数值的容许误差及迭代次数条件下 计算值 在满足根的容许误差 函数值的容许误差及迭代次数条件下 计算 x1 x0 f x0 f x0 以此进行下次循环 以此进行下次循环 1 程序代码为 程序代码为 include include using namespace std define N 100 define eps 1e 6 define eta 1e 8 float Newton float f float float f1 float float x0 float x1 d int k 0 do x1 x0 f x0 f1 x0 if k N fabs f1 x1 eps printf n Newton 迭代发散 break d fabs x1 eps return x1 计算方法实验 第 3 页 共 13 页 float f float x return float x x exp x float f1 float x return float 2 x exp x void main int i 0 float x 0 for i 0 i 100 i x x A x B x cout x x endl i 2 运行过程 运行过程 x 1 x 0 733044 x 0 703808 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 x 0 703467 3 运行结果为 运行结果为 计算方法实验 第 4 页 共 13 页 x 0 703467 结果分析 得出的结果为结果分析 得出的结果为 x 0 703467 由运行过程可知在此值时结果已经稳定 且经检验 由运行过程可知在此值时结果已经稳定 且经检验 结果精确到了小数点后第六位 结果精确到了小数点后第六位 实习题 3 1 用列主元高斯消去法解方程组 用列主元高斯消去法解方程组 1 x1 x2 3x4 4 2x1 x2 x3 x4 1 3x1 x2 x3 3x4 3 x1 2x2 3x3 x4 4 思路 将方程用增广矩阵思路 将方程用增广矩阵 A b aij n n 1 表示 表示 分别进行消元和回代过程分别进行消元和回代过程 消元过程 消元过程 对对 k 1 2 n 1 1 选主元选主元 k i k a 2 如果如果 0 则矩阵 则矩阵 A 奇异 程序结束 否则执行 奇异 程序结束 否则执行 3 k i k a 3 如果如果 则交换第 则交换第 k 行与第行与第行对应元素位置行对应元素位置 k ik k i 4 消元 消元 对对 i k 1 n 计算计算 对 对 j k 1 n 1 计算计算 ik ik kk a l a ijijikkj aal a 回代过程回代过程 1 若若 则矩阵 则矩阵 A 奇异 程序结束 否则执行 奇异 程序结束 否则执行 2 0 nn a 2 对 对 i n 1 2 1 计算计算 1nn nnn xaa 1 1 n ii nijjii j i xaa xa 1 程序代码为 程序代码为 include include include using namespace std void main int i float x 4 float c 4 5 1 1 0 3 4 2 1 1 1 1 3 1 1 3 3 1 2 3 1 4 void Direct float int float 计算方法实验 第 5 页 共 13 页 Direct c 0 4 x for i 0 i 3 i printf x d f n i x i void Direct float c int n float x int i j k t float p for i 0 i n 2 i k i for j i 1 j fabs c k n 1 i k j if k i for j i j n j p c i n 1 j c i n 1 j c k n 1 j c k n 1 j p for j i 1 j n 1 j p c j n 1 i c i n 1 i for t i t 0 i for j n 1 j i 1 j c i n 1 n x j c i n 1 j x i c i n 1 n c i n 1 i 2 运行结果为 运行结果为 x 0 1 333333 x 1 2 333333 x 2 0 333333 x 3 1 000000 4 编写用追赶法解三对角线性方程组的程序 并解下列方程组 编写用追赶法解三对角线性方程组的程序 并解下列方程组 2 Ax b 其中其中 计算方法实验 第 6 页 共 13 页 10 1010 1 27 15 41 15 11 14 15 15 0 0 Ab 思路 应用高斯消去法求解时 消元过程可以简化 得到同解的三角方程组 进行回代思路 应用高斯消去法求解时 消元过程可以简化 得到同解的三角方程组 进行回代 消去过程为 消去过程为 1111 11 1 2 3 i iiiiiiiii i byd a lblcydl yin 回代过程为回代过程为 1 1 2 1 nnn iiiii xy xyc xinn 1 程序代码为 程序代码为 include void main float x 10 int i float a 10 11 4 1 0 0 0 0 0 0 0 0 27 1 4 1 0 0 0 0 0 0 0 15 0 1 4 1 0 0 0 0 0 0 15 0 0 1 4 1 0 0 0 0 0 15 0 0 0 1 4 1 0 0 0 0 15 0 0 0 0 1 4 1 0 0 0 15 0 0 0 0 0 1 4 1 0 0 15 0 0 0 0 0 0 1 4 1 0 15 0 0 0 0 0 0 0 1 4 1 15 0 0 0 0 0 0 0 0 1 4 15 void Direct float int float Direct a 0 10 x for i 0 i 9 i printf x d f n i x i void Direct float u int n float x int i r k for r 0 r n 1 r for i r i n i for k 0 k r 1 k 计算方法实验 第 7 页 共 13 页 u r n 1 i u r n 1 k u k n 1 i for i r 1 i n 1 i for k 0 k 0 i for r n 1 r i 1 r u i n 1 n u i n 1 r x r x i u i n 1 n u i n 1 i 2 运行结果为 运行结果为 x 0 8 705758 x 1 7 823033 x 2 7 586371 x 3 7 522452 x 4 7 503439 x 5 7 491305 x 6 7 461785 x 7 7 355835 x 8 6 961556 x 9 5 490389 实习题 4 2 按下列数据 按下列数据 xi 0 30 0 42 0 50 0 58 0 66 0 72 yi 1 04403 1 08462 1 11803 1 15603 1 19817 1 23223 作五次插值 并求作五次插值 并求 x1 0 46 x2 0 55 x3 0 60 时的函数近似值 时的函数近似值 思路 思路 1 输入 输入令令 0 1 2 ii x y in 0 n L x 2 对 对 i 0 1 2 n 计算计算 0 n j i j ij j i nnii xx l x xx L xL xl x y 1 程序代码为 程序代码为 include include 计算方法实验 第 8 页 共 13 页 using namespace std define N 5 void Difference float x float y int n float f new float n 1 int k i for k 1 k n k f 0 y k for i 0 i 0 i b b varx x i y i printf Nn f f varx b 在 main 函数中 分别另 varx 为 0 46 0 55 0 60 可得 2 运行结果为 运行结果为 0 46 时 1 100724 1 x 1 y 0 55 时 1 141271 2 x 2 y 0 60 时 1 166194 3 x 3 y 实习题 5 1 试分别用抛物线 试分别用抛物线和指数曲线和指数曲线拟合下列数据 拟合下列数据 2 yabxcx bx yae xi 1 1 5 2 2 5 3 3 5 4 4 5 yi 33 4 79 50 122 65 159 05 189 15 214 15 238 65 252 50 xi 5 5 5 6 6 5 7 7 5 8 yi 267 55 280 50 296 65 301 40 310 40 318 15 325 15 计算方法实验 第 9 页 共 13 页 比较比较 2 个拟合函数的优劣 个拟合函数的优劣 1 用抛物线用抛物线拟合 拟合 2 yabxcx a 程序代码为程序代码为 matlab 代码为 A 11 5 22 5 33 5 44 5 55 5 66 5 77 5 8 B 33 479 5 122 65159 05189 15214 15238 65252 5 267 55 280 5 296 65301 4310 4318 15325 15 S zeros 1 5 T zeros 3 1 for k 1 5 S k sum A k 1 end for k 1 3 T k sum A k 1 B end C zeros 3 3 a zeros 3 1 for i 1 3 for j 1 3 C i j S i j 1 end end a C T for k 1 3 disp a k end b 运行结果为 运行结果为 a 0 45 3333 a 1 94 2302 a 2 6 1316 c 拟合曲线 拟合曲线 2 6 131694 230245 3333yxx 2 用 指数曲线指数曲线拟合拟合 bx yae 将等式两边取自然对数得 lny lna bx 记 y lny a lna y a bx 得到新数据 x 1 1 5 2 2 5 3 3 5 4 4 5 5 5 5 6 6 5 7 7 5 8 y 3 51 4 38 4 81 5 07 5 24 5 37 5 47 5 53 5 59 5 64 5 69 5 71 5 74 5 76 5 78 a 程序代码为 程序代码为 include include 计算方法实验 第 10 页 共 13 页 include void main void ColPivot float int float int i float x 2 float c 2 3 15 67 5 79 29 67 5 373 5 373 5 ColPivot c 0 2 x for i 0 i 1 i printf x d f n i x i void ColPivot float c int n float x int i j k t float p for i 0 i n 2 i k i for j i 1 j fabs c k n 1 i k j if k i for j i j n j p c i n 1 j c i n 1 j c k n 1 j c k n 1 j p for j i 1 j n 1 j p c j n 1 i c i n 1 i for t i t 0 i for j n 1 j i 1 j c i n 1 n x j c i n 1 j x i c i n 1 n c i n 1 i b 运行结果为 运行结果为 x 0 4 208903 x 1 0 239355 c 拟合曲线为 拟合曲线为 计算方法实验 第 11 页 共 13 页 0 239355 67 2827ye 分析 带入数据进行检验 我们可以发现抛物线分析 带入数据进行检验 我们可以发现抛物线与指数曲线与指数曲线拟合拟合 2 yabxcx bx yae 相比 抛物线更加精确 而指数曲线具有较大的误差 因为在指数曲线拟合时 将指数函相比 抛物线更加精确 而指数曲线具有较大的误差 因为在指数曲线拟合时 将指数函 数按照一次函数来进行处理的 而拟合时 拟合函数的复杂度越高越准确 所以抛物线的数按照一次函数来进行处理的 而拟合时 拟合函数的复杂度越高越准确 所以抛物线的 拟合方法更准确 拟合方法更准确 实习题 6 用复化梯形公式和复化用复化梯形公式和复化 Simpson 公式计算积分公式计算积分和和 2 2 1 0 1 cosIfxdx 观察观察 n 为多少时所得近似值具有为多少时所得近似值具有 6 位有效数字 位有效数字 4 2 0 tan x Ifdx x 1 用复化梯形公式计算积分用复化梯形公式计算积分 2 2 1 0 1 cosIfxdx a 程序代码为程序代码为 include include int n float AutoTrap float f float float a float b int i float x s h b a float t1 t2 h 2 f a f b n 1 do s 0 t1 t2 for i 0 i0 5e 6 return t2 计算方法实验 第 12 页 共 13 页 float f float x return sqrt 1 cos x cos x void main float s double pi 3 141592653 s AutoTrap f 0 pi 2 printf T d f n n s b 运行结果为 运行结果为 T 8 1 910099 结果分析 运行结果表示结果分析 运行结果表示 n 为为 8 时所得近似值具有时所得近似值具有 6 位有效数字 位有效数字 2 复化复化 Simpson 公式计算积分公式计算积分 4 2 0 tan x Ifdx x a 程序代码为程序代码为 include include float Simpson float f float float a float b int n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论