数值计算方法实验报告_第1页
数值计算方法实验报告_第2页
数值计算方法实验报告_第3页
数值计算方法实验报告_第4页
数值计算方法实验报告_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

重 庆 交 通 大 学 学 生 实 验 报 告 实验课程名称 数值计算方法 I 开课实验室 数学实验室 学 院 理学院 年级 11 专业班 信息与计算科学 学 生 姓 名 李伟凯 学 号 3 开 课 时 间 2013 至 2014 学年第 1 学期 评分细则评分 报告表述的清晰程度和完整性 20 分 程序设计的正确性 40 分 实验结果的分析 30 分 实验方法的创新性 10 分 总成绩 教师签名 邹昌文 实验五实验五 解线性方程组的直接方法解线性方程组的直接方法 实验实验 5 1 主元的选取与算法的稳定性 问题提出问题提出 Gauss 消去法是我们在线性代数中已经熟悉的 但由于计算机 的数值运算是在一个有限的浮点数集合上进行的 如何才能确保 Gauss 消去法 作为数值算法的稳定性呢 Gauss 消去法从理论算法到数值算法 其关键是主 元的选择 主元的选择从数学理论上看起来平凡 它却是数值分析中十分典型 的问题 实验内容实验内容 考虑线性方程组 nnn RbRAbAx 编制一个能自动选取主元 又能手动选取主元的求解线性方程组的 Gauss 消去过程 实验要求实验要求 1 取矩阵 则方程有解 14 15 15 7 68 168 168 16 bA T x 1 1 1 取 n 10 计算矩阵的条件数 让程序自动选取主元 结果如何 2 现选择程序中手动选取主元的功能 每步消去过程总选取按模最小 或按模尽可能小的元素作为主元 观察并记录计算结果 若每步消去过程总选 取按模最大的元素作为主元 结果又如何 分析实验的结果 3 取矩阵阶数 n 20 或者更大 重复上述实验过程 观察记录并分析不 同的问题及消去过程中选择不同的主元时计算结果的差异 说明主元素的选取 在消去过程中的作用 4 选取其他你感兴趣的问题或者随机生成矩阵 计算其条件数 重复 上述实验 观察记录并分析实验结果 实验实验 5 2 线性代数方程组的性态与条件数的估计 问题提出问题提出 理论上 线性代数方程组的摄动满足bAx b b A A AA Acond x x 1 1 矩阵的条件数确实是对矩阵病态性的刻画 但在实际应用中直接计算它显 然不现实 因为计算通常要比求解方程还困难 1 AbAx 实验内容实验内容 MATLAB 中提供有函数 condest 可以用来估计矩阵的条件 数 它给出的是按 1 范数的条件数 首先构造非奇异矩阵 A 和右端 使得方程 是可以精确求解的 再人为地引进系数矩阵和右端的摄动 使得bA 和 充分小 bA 和 实验要求 1 假设方程 Ax b 的解为 x 求解方程 以 1 范数 bbxAA 给出的计算结果 x xx x x 2 选择一系列维数递增的矩阵 可以是随机生成的 比较函数 condest 所需机器时间的差别 考虑若干逆是已知的矩阵 借助函数 eig 很 容易给出 cond2 A 的数值 将它与函数 cond A 2 所得到的结果进行比较 3 利用 condest 给出矩阵 A 条件数的估计 针对 1 中的结果给出 的理论估计 并将它与 1 给出的计算结果进行比较 分析所得结果 注 x x 意 如果给出了 cond A 和的估计 马上就可以给出的估计 A 1 A 4 估计著名的 Hilbert 矩阵的条件数 nji ji hhH jinnji 2 1 1 1 思考题一 思考题一 Vadermonde 矩阵 设 n i i n n i i n i i n i i n nnn n n n x x x x b xxx xxx xxx xxx A 0 0 2 0 1 0 0 2 2 2 22 1 2 11 0 2 00 1 1 1 1 其中 nkkxk 1 0 1 01 1 对 n 2 5 8 计算 A 的条件数 随 n 增大 矩阵性态如何变化 2 对 n 5 解方程组 Ax b 设 A 的最后一个元素有扰动 10 4 再求解 Ax b 3 计算 2 扰动相对误差与解的相对偏差 分析它们与条件数的关系 4 你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗 日或牛顿插值法的原因吗 相关 MATLAB 函数提示 zeros m n 生成 m 行 n 列的零矩阵 ones m n 生成 m 行 n 列的元素全为 1 的矩阵 eye n 生成 n 阶单位矩阵 rand m n 生成 m 行 n 列 0 1 上均匀分布的随机矩阵 diag x 返回由向量 x 的元素构成的对角矩阵 tril A 提取矩阵 A 的下三角部分生成下三角矩阵 triu A 提取矩阵 A 的上三角部分生成上三角矩阵 rank A 返回矩阵 A 的秩 det A 返回方阵 A 的行列式 inv A 返回可逆方阵 A 的逆矩阵 V D eig A 返回方阵 A 的特征值和特征向量 norm A p 矩阵或向量的 p 范数 cond A p 矩阵的条件数 L U P lu A 选列主元 LU 分解 R chol X 平方根分解 Hi hilb n 生成 n 阶 Hilbert 矩阵 实验程序 实验程序 M 文件程序为 function x gauss n r n input 请输入矩阵 A 的阶数 n A diag 6 ones 1 n diag ones 1 n 1 1 diag 8 ones 1 n 1 1 b A ones n 1 p input 条件数对应的范数是 p 范数 p pp cond A p pause m n size A nb n 1 Ab A b r input 请输入是否为手动 手动输入 1 自动输入 0 r for i 1 n 1 if r 0 pivot p max abs Ab i n i ip p i 1 if ip i Ab i ip Ab ip i disp Ab pause end end if r 1 i i ip input 输入 i 列所选元素所处的行数 ip Ab i ip Ab ip i disp Ab pause end pivot Ab i i for k i 1 n Ab k i nb Ab k i nb Ab k i pivot Ab i i nb end disp Ab pause end x zeros n 1 x n Ab n nb Ab n n for i n 1 1 1 x i Ab i nb Ab i i 1 n x i 1 n Ab i i end 1 取矩阵 A 的阶数 n 10 自动选取主元 format long gauss 请输入矩阵 A 的阶数 n 10 n 10 条件数对应的范数是 p 范数 p 1 p 1 pp 2 0000e 003 请输入是否为手动 手动输入 1 自动输入 0 r 0 r 0 取矩阵 A 的阶数 n 10 手动选取主元 选取绝对值最大的元素为主元 gauss 请输入矩阵 A 的阶数 n 10 n 10 条件数对应的范数是 p 范数 p 2 p 2 pp 1 3903e 003 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 ans 1 1 1 1 1 1 1 1 1 1 选取绝对值最小的元素为主元 gauss 请输入矩阵 A 的阶数 n 10 n 10 条件数对应的范数是 p 范数 p 2 p 2 pp 1 3903e 003 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 ans 1 000 1 000 1 000 1 000 1 000 1 000 0 999 1 001 0 998 1 003 2 取矩阵 A 的阶数 n 10 手动选取主元 选取绝对值最大的元素为主元 gauss 请输入矩阵 A 的阶数 n 10 n 10 条件数对应的范数是 p 范数 p 2 p 2 pp 1 3903e 003 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 ans 1 1 1 1 1 1 1 1 1 1 选取绝对值最小的元素为主元 gauss 请输入矩阵 A 的阶数 n 10 n 10 条件数对应的范数是 p 范数 p 2 p 2 pp 1 3903e 003 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 ans 1 000 1 000 1 000 1 000 1 000 1 000 0 999 1 001 0 998 1 003 3 取矩阵 A 的阶数 n 20 手动选取主元 选取绝对值最大的元素为主元 gauss 请输入矩阵 A 的阶数 n 20 条件数对应的范数是 p 范数 p 1 p 1 pp 2 0000e 006 ans 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 选取绝对值最小的元素为主元 gauss 请输入矩阵 A 的阶数 n 20 n 20 条件数对应的范数是 p 范数 p 2 p 2 pp 1 1683e 006 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 ans 1 000 1 000 1 000 1 000 1 000 1 000 1 001 0 997 1 006 0 989 1 023 0 955 1 090 0 821 1 352 0 318 1 273 0 817 1 910 4 该题目的 M 程序如下所示 function x gauss n r n input 请输入矩阵 A 的阶数 n A hilb n b A ones n 1 p input 条件数对应的范数是 p 范数 p pp cond A p pause m n size A nb n 1 Ab A b r input 请输入是否为手动 手动输入 1 自动输入 0 r for i 1 n 1 if r 0 pivot p max abs Ab i n i ip p i 1 if ip i Ab i ip Ab ip i disp Ab pause end end if r 1 i i ip input 输入 i 列所选元素所处的行数 ip Ab i ip Ab ip i disp Ab pause end pivot Ab i i for k i 1 n Ab k i nb Ab k i nb Ab k i pivot Ab i i nb end disp Ab pause end x zeros n 1 x n Ab n nb Ab n n for i n 1 1 1 x i Ab i nb Ab i i 1 n x i 1 n Ab i i end 1 gauss 请输入矩阵 A 的阶数 n 7 n 7 A 6 1 0 0 0 0 0 8 6 1 0 0 0 0 0 8 6 1 0 0 0 0 0 8 6 1 0 0 0 0 0 8 6 1 0 0 0 0 0 8 6 1 0 0 0 0 0 8 6 b 7 15 15 15 15 15 14 pp 3 9999e 002 Ab 6 1 0 0 0 0 0 7 8 6 1 0 0 0 0 15 0 8 6 1 0 0 0 15 0 0 8 6 1 0 0 15 0 0 0 8 6 1 0 15 0 0 0 0 8 6 1 15 0 0 0 0 0 8 6 14 请输入是否为手动 手动输入 1 自动输入 0 r 1 r 1 条件数对应的范数是 p 范数 p 1 p 1 i 1 ans 0 869 1 337 0 299 1 143 0 038 1 825 0 491 显然的是 该问题在主元选取与算出结果有着很大的关系 取绝对值大的 元素作为主元比取绝对值小的元素作为主元时产生的结果比较准确 即选取绝 对值小的主元时结果产生了较大的误差 条件数越大产生的误差就越大 实验体会 实验体会 运用高斯消去法求解线性方程组问题的时候 主元的选取和相应的消去法 的选取决定了该算法的稳定性 选取绝对值大的元素比选取绝对值比较小的元 素作为主元时对结果产生的误差影响比较小 并且增加条件数反而对结果的误 差产生更大的影响 并且在运算中要尽量避免出现运用小数作为除数 使数量 级加大 令大数吃掉小数的情况发生 实验实验 5 2 线性代数方程组的性态与条件数的估计 问题提出问题提出 理论上 线性代数方程组的摄动满足bAx b b A A AA Acond x x 1 1 矩阵的条件数确实是对矩阵病态性的刻画 但在实际应用中直接计算它显 然不现实 因为计算通常要比求解方程还困难 1 AbAx 实验内容实验内容 MATLAB 中提供有函数 condest 可以用来估计矩阵的条件 数 它给出的是按 1 范数的条件数 首先构造非奇异矩阵 A 和右端 使得方程 是可以精确求解的 再人为地引进系数矩阵和右端的摄动 使得bA 和 充分小 bA 和 实验要求 1 假设方程 Ax b 的解为 x 求解方程 以 1 范数 bbxAA 给出的计算结果 x xx x x 2 选择一系列维数递增的矩阵 可以是随机生成的 比较函数 condest 所需机器时间的差别 考虑若干逆是已知的矩阵 借助函数 eig 很 容易给出 cond2 A 的数值 将它与函数 cond A 2 所得到的结果进行比较 3 利用 condest 给出矩阵 A 条件数的估计 针对 1 中的结果给出 的理论估计 并将它与 1 给出的计算结果进行比较 分析所得结果 注 x x 意 如果给出了 cond A 和的估计 马上就可以给出的估计 A 1 A 4 估计著名的 Hilbert 矩阵的条件数 nji ji hhH jinnji 2 1 1 1 程序代码 程序代码 1 1 保存保存 M 文件名为 文件名为 fanshu m n input please input n n a fix 100 rand n 1 x ones n 1 b a x data rand n 0 00001 datb rand n 1 0 00001 A a data B b datb xx geshow A B x0 norm xx x 1 norm x 1 保存保存 M 文件名为 文件名为 geshow m function x geshow A B m n size A nb n 1 AB A B for i 1 n 1 pivot AB i i for k i 1 n AB k i nb AB k i nb AB k i pivot AB i i nb end end x zeros n 1 x n AB n nb AB n n for i n 1 1 1 x i AB i nb AB i i 1 n x i 1 n AB i i end 2 2 保存保存 M 文件名为 文件名为 cond2 m function cond2 A B A A V1 D1 eig B V2 D2 eig B 1 cond2A sqrt max max D1 sqrt max max D2 end 保存保存 M 文件为 文件为 shiyan52 m format long for n 10 10 100 n n A fix 100 randn n condestA condest A cond2 A condA2 cond A 2 pause end 3 3 保存保存 M 文件为 文件为 sy5 2 m n input please input n n 输入矩阵的阶数 a fix 100 rand n 1 随机生成一个矩阵 a x ones n 1 假设知道方程组的解全为 1 b a x data rand n 0 00001 datb rand n 1 0 00001 A a data B b datb xx geshow A B x0 norm xx x 1 norm x 1 x00 cond A 1 norm inv A norm xx x norm xx x norm A norm datb norm B datx abs x0 x00 4 format long for n 4 11 n n Hi hilb n cond1Hi cond Hi 1 cond2Hi cond Hi 2 condinfHi cond Hi inf pause end 实验结果及其分析 实验结果及其分析 1 fanshu please input n n 6 n 6 a 82 28 96 80 68 71 91 55 49 96 76 4 13 96 81 66 75 28 92 97 15 4 40 5 64 16 43 85 66 10 10 98 92 94 18 83 x 1 1 1 1 1 1 b 425 371 359 253 284 395 data 1 0e 005 Columns 1 through 4 0 5817 0 9002 0 8073 0 8377 0 0861 0 7063 0 2361 0 2143 0 8355 0 4379 0 8578 0 6081 0 2909 0 8231 0 3675 0 6133 0 6398 0 0900 0 3841 0 9777 0 3009 0 1265 0 4631 0 1137 Columns 5 through 6 0 5653 0 3803 0 9269 0 8679 0 5142 0 9058 0 6686 0 3737 0 5799 0 3663 0 5445 0 1531 datb 1 0e 005 0 8817 0 4989 0 7228 0 4809 0 1208 0 6031 A Columns 1 through 4 82 6227 28 7881 96 8307 80 6814 91 4802 55 9009 49 6819 96 0522 13 0488 96 6045 81 0766 66 9586 92 0801 97 3961 15 6769 4 7266 64 3596 16 2008 43 0039 85 7504 10 4570 98 0106 92 7353 94 9393 Columns 5 through 6 68 0592 71 5294 76 1152 4 4429 75 0512 28 0054 40 7226 5 2541 66 2530 10 2560 18 4253 83 1790 B 1 0e 002 4 8483 3 2497 3 6362 2 8376 2 9525 3 8386 xx 1 1561 0 4732 1 3244 0 6705 0 9937 0 3164 x0 1 4392e 006 的计算结果为 1 4392e 006 x xx x x 2 NcondestAcond2AcondA2 101 3102 e 002 32 42132 420 203 0668 e 002 65 96665 720 306 2835 e 002 1 6398 e 002 1 6322 e 002 403 2470 e 002 61 44861 365 506 9408 e 002 81 59481 482 601 9367 e 004 1 4781 e 003 1 8527 e 003 703 2132 e 003 3 0936 e 002 3 8439 e 002 808 8658 e 002 86 51386 018 902 7935 e 003 2 1705 e 002 2 1079 e 002 1001 88971 84911 8373 e 003e 002e 002 3 sy5 2 please input n n 8 n 8 x0 3 9900e 007 x00 5 3296e 007 datx 1 3396e 007 给出对的估计是 5 3296e 007 x xx x x 的理论结果是 3 9900e 007 x xx x x 结果相差 1 3396e 007 4 ncond1Hicond2HicondinfHi 42 9738 e 004 1 2786 e 004 2 9739 e 004 59 9364 e 005 4 4135 e 005 9 9336 e 005 62 4878 e 007 1 9243 e 007 2 4064 e 007 79 4700 e 008 4 4586 e 008 9 8483 e 008 83 2742 e 010 1 1988 e 010 3 9470 e 010 91 6047 e 012 4 1016 e 011 1 1052 e 012 103 7474 e 013 1 2488 e 013 3 5642 e 013 111 2001 e 015 5 5823 e 014 1 8720 e 015 讨论 讨论 线性代数方程组的性态与条件数有着很重要的关系 既矩阵的条件数是刻 画矩阵性质的一个重要的依据 条件数越大 矩阵 病态 性越严重 在解线 性代数方程组的过程中较容易产生比较大的误差 则在实际问题的操作过程中 我们必须要减少对条件数来求解 把条件数较大的矩阵化成条件数较小的矩阵 来进行求解 实验体会 实验体会 在本次实验中 使我们知道了矩阵条件数对线性代数方程组求解的影响 条件数越大 对最后解的影响的越大 hilbert 矩阵是一个很 病态 的矩阵 他 的条件数随着阶数的增加而增大 每增加一阶 条件数就增大一个数量级 在 求解的过程中要尽量避免 hilbert 矩阵 实验六实验六 解线性方程组的迭代法解线性方程组的迭代法 实验实验 6 1 病态的线性方程组的求解 问题提出问题提出 理论的分析表明 求解病态的线性方程组是困难的 实际情况 是否如此 会出现怎样的现象呢 实验内容实验内容 考虑方程组 Hx b 的求解 其中系数矩阵 H 为 Hilbert 矩阵 nji ji hhH jinnji 2 1 1 1 这是一个著名的病态问题 通过首先给定解 例如取为各个分量均为 1 再计算出右端 b 的办法给出确定的问题 实验要求实验要求 1 选择问题的维数为 6 分别用 Gauss 消去法 J 迭代法 GS 迭代法 和 SOR 迭代法求解方程组 其各自的结果如何 将计算结果与问题的解比较 结论如何 2 逐步增大问题的维数 仍然用上述的方法来解它们 计算的结果如 何 计算的结果说明了什么 3 讨论病态问题求解的算法 程序代码 程序代码 Gauss 消去法程序 消去法程序 function x gauss n r n input 请输入矩阵的阶数 n A hilb n 构造 Hilbert 矩阵 p input 条件数对应的范数是 p 范数 p pp cond A p pause m n size A nb n 1 Ab A b r input 请输入是否为手动 手动输入 1 自动输入 0 r for i 1 n 1 if r 0 pivot p max abs Ab i n i ip p i 1 if ip i Ab i ip Ab ip i disp Ab pause end end if r 1 i i ip input 输入 i 列所选元素所处的行数 ip Ab i ip Ab ip i disp Ab pause end pivot Ab i i for k i 1 n Ab k i nb Ab k i nb Ab k i pivot Ab i i nb end disp Ab pause end x zeros n 1 x n Ab n nb Ab n n for i n 1 1 1 x i Ab i nb Ab i i 1 n x i 1 n Ab i i end J 迭代法程序 迭代法程序 n input 系数矩阵的阶数 A hilb n 构造 Hilbert 矩阵 for i 1 n a0 i 1 给定解 x i 0 end b A a0 由给定的解算出相应的 b 进行迭代 for i 1 100 y x for j 1 n x j b j A j j for k 1 j 1 x j x j A j k y k A j j end for k j 1 n x j x j A j k y k A j j end end end x GS 迭代程序 迭代程序 n input 系数矩阵的阶数 对题中给定的矩阵进行消元 A2 hilb n for i 1 n a02 i 1 x2 i 0 end b2 A2 a02 for i 1 for j 1 n x2 j b2 j A2 j j for k 1 j 1 x2 j x2 j A2 j k x2 k A2 j j end for k j 1 n x2 j x2 j A2 j k x2 k A2 j j end end end x2 SOR 迭代程序 迭代程序 n input 系数矩阵的阶数 ss input 松弛因子 对题中给定的矩阵进行消元 A3 hilb n for i 1 n a03 i 1 x3 i 0 end b3 A3 a03 for i 1 for j 1 n rc x3 j x3 j b3 j A3 j j for k 1 j 1 x3 j x3 j A3 j k x3 k A3 j j end for k j 1 n x3 j x3 j A3 j k x3 k A3 j j end x3 j 1 ss rc ss x3 j end end x3 实验结果及其分析 实验结果及其分析 给定各分量为 1 的解 计算出右端作为问题 1 选择问题的维数为 6 时 用 Gauss 消去法求得的解与精确解一致 取初始向量为 0 用 J 迭代方法迭代出现发散的不稳定现象 无法求解 取初始向量为 0 用 GS 迭代方法迭代不发散 能求得解 但收敛非常缓慢 当迭代次数取 得相当大 次 时解仍在精确解附近波动 取初始向量为 0 用 SOR 迭代方法迭代不发散 能求得解 当松弛因子去 1 25 左右时收敛 较 GS 迭代快一些 但仍非常缓慢 2 选择问题的维数为 20 时 用 Gauss 消去法求得的解与精确解相差很大 相差 10 的量级 取初始向量为 0 用 J 迭代方法迭代发散 无法求解 取初始向量为 0 用 GS 迭代方法迭代不发散 能求得解 但收敛非常缓慢 迭代次后 算 得的值与精确值 1 相差 0 001 的量级 取初始向量为 0 用 SOR 迭代方法迭代不发散 能求得解 但收敛非常缓慢 从上面的结果可以看出当病态问题的阶数升高时作为直接法的 Gauss 消去法又能求解变成 不能求解 而 GS 和 SOR 迭代法在阶数升高时仍能求解 但在阶数较低时直接法能求得精 确解而迭代发却总存在一定的误差 可见直接法与迭代法各有各的优势与不足 关于病态问题的求解 主要的方法是对原方程作某些预处理 以降低系数矩阵的条件 数 可以采取将系数矩阵 A 的每一行本别乘上适当常数的方法 即找到可逆的对角阵 和使方程组化为 理论上最好选择对角阵 1 D 2 DAxb 1 1212 D AD yDb xD y 满足 12 D D 1212 min cond D ADcond D AD 实验七实验七 非线性方程求根非线性方程求根 实验 7 1 迭代法 初始值与收敛性 实验目的 初步认识非线性问题的迭代法与线性问题迭代法的差别 探讨迭代 法及初始值与迭代收敛性的关系 问题提出 迭代法是求解非线性方程的基本思想方法 与线性方程的情况一样 其构造方法可以有多种多样 但关键是怎样才能使迭代收敛且有较快的收敛速 度 实验内容 考虑一个简单的代数方程 01 2 xx 针对上述方程 可以构造多种迭代法 如 1 7 1 2 1 nn xx 2 7 1 1 1 n n x x 3 7 1 1 nn xx 在实轴上取初始值 x0 请分别用迭代 7 1 7 3 作实验 记录各算法的迭 代过程 实验要求 1 取定某个初始值 分别计算 7 1 7 3 迭代结果 它们的收敛性如何 重复选取不同的初始值 反复实验 请自选设计一种比较形象的记录方式 如 利用 Matlab 的图形功能 分析三种迭代法的收敛性与初值选取的关系 2 对三个迭代法中的某个 取不同的初始值进行迭代 结果如何 试分析迭 代法对不同的初值是否有差异 3 线性方程组迭代法的收敛性是不依赖初始值选取的 比较线性与非线性问 题迭代的差异 有何结论和问题 实验过程 实验过程 7 1 程序 程序 7 1 1 对于第一个迭代方程的程序 对于第一个迭代方程的程序 保存为 diedai71 h Clc clear a 1 5 b 2 5 y00 0 x00 input 请输入第一个函数的初值 x00 x linspace a b 80 y0 x 计算直线y x y1 diedai7f1 x 计算迭代函数y f x clear y y y0 y1 plot x y linewidth 1 legend y x y f1 title x n 1 x n 2 1 输出标题 hold on plot a b 0 0 k 0 0 a b k axis a b a b 画坐标轴 z for i 1 15 画蛛网图 迭代过程为n 15次 xt 1 x00 yt 1 y00 决定始点坐标 xt 2 diedai7f1 xt 1 决定终点坐标 yt 2 diedai7f1 xt 1 diedaiplot71 xt yt 0 6 画蛛网图 if i 5 pause 按任意键逐次观察前5次迭代的蛛网图 end x00 xt 2 y00 yt 2 将本次迭代的终点作为下次的始点 z z xt 1 保存迭代点 end 保存为 diedai7f1 h function y diedai7f1 x y x x 1 保存为 diedaiplot71 h function out diedaiplot72 x y p 画一次迭代的蛛网图 改变p调节箭头的大小 u 1 0 v 1 y 2 y 1 画出始点 x 1 y 1 终点 x 2 y 2 的有向折 线段 u 2 eps v 2 eps X x 1 x 1 Y y 1 y 2 h quiver X Y u v p set h color red hold on u 1 x 2 x 1 v 1 0 u 2 eps v 2 eps h quiver x 1 x 2 y 2 y 2 u v p set h color red plot x 1 x 1 x 2 y 1 y 2 y 2 r 7 1 1 对于第一个迭代方程的程序运行结果 对于第一个迭代方程的程序运行结果 注 由于可以估计出方程的根 故选取根附近的值开始迭代 注 由于可以估计出方程的根 故选取根附近的值开始迭代 当 x 1 5 时程序运行如下图 当 x 1 时程序运行如下图 当 x 0 5 时程序运行如下图 当 x 0 5 时程序运行如下图 当 x 0 时程序运行如下图 7 2 1 对于第二个迭代方程的程序 对于第二个迭代方程的程序 保存为 diedai72 h clear clc a 0 1 b 6 5 y00 0 x00 input 请输入第二个函数的初值 x00 x linspace a b 80 y0 x 计算直线y x y1 diedai7f2 x 计算迭代函数y f x clear y y y0 y1 plot x y linewidth 1 legend y x y f1 title x n 1 x n 2 1 输出标题 hold on plot a b 0 0 k 0 0 a b k axis a b a b 画坐标轴 z for i 1 15 画蛛网图 迭代过程为n 15次 xt 1 x00 yt 1 y00 决定始点坐标 xt 2 diedai7f2 xt 1 决定终点坐标 yt 2 diedai7f2 xt 1 diedaiplot72 xt yt 0 6 画蛛网图 if i 5 pause 按任意键逐次观察前5次迭代的蛛网图 end x00 xt 2 y00 yt 2 将本次迭代的终点作为下次的始点 z z xt 1 保存迭代点 end 保存为迭代 diedai7f2 h function y diedai7f2 x y 1 1 x 保存为 diedaiplot72 h function out diedaiplot72 x y p 画一次迭代的蛛网图 改变p调节箭头的大小 u 1 0 v 1 y 2 y 1 画出始点 x 1 y 1 终点 x 2 y 2 的有向折线段 u 2 eps v 2 eps X x 1 x 1 Y y 1 y 2 h quiver X Y u v p set h color red hold on u 1 x 2 x 1 v 1 0 u 2 eps v 2 eps h quiver x 1 x 2 y 2 y 2 u v p set h color red plot x 1 x 1 x 2 y 1 y 2 y 2 r 7 2 2 对于第二个迭代方程的程序运行结果 对于第二个迭代方程的程序运行结果 注 由于可以估计出方程的根 故选取根附近的值开始迭代 注 由于可以估计出方程的根 故选取根附近的值开始迭代 当 x 1 5 时程序运行如下图 当 x 5 时程序运行如下图 当 x 2 5 时程序运行如下图 当 x 0 5 时程序运行如下图 7 3 1 对于第三个迭代方程的程序 对于第三个迭代方程的程序 保存为diedai73 h clear clc a 0 b 2 y00 0 x00 input 请输入第三个函数的初值 x00 x linspace a b 80 y0 x 计算直线y x y1 diedai7f3 x 计算迭代函数y f x clear y y y0 y1 plot x y linewidth 1 legend y x y f1 title x n 1 x n 2 1 输出标题 hold on plot a b 0 0 k 0 0 a b k axis a b a b 画坐标轴 z for i 1 15 画蛛网图 迭代过程为n 15次 xt 1 x00 yt 1 y00 决定始点坐标 xt 2 diedai7f3 xt 1 决定终点坐标 yt 2 diedai7f3 xt 1 diedaiplot73 xt

温馨提示

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

评论

0/150

提交评论