当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

西华师范大学:《算法与程序设计》课程教学资源_数学实验

资源类别:文库,文档格式:PDF,文档页数:9,文件大小:150.6KB,团购合买
物理实验、化学实验是物理课、化学课的重要环节数学实验同样是学好计算方法课必 不可少的一环 数学实验是指学生用自己编写的程序验证算式的正确性的实验·正确性包括稳定性和 收敛性两方面的内容,并都用“误差”作检验标准此外数学实验也含验证算法的复杂性 在数学实验里,该误差有时指计算值和理论值的差,
点击下载完整版文档(PDF)

数学实验 物理实验、化学实验是物理课化学课的重要环节,数学实验同样是学好计算方法课必 不可少的一环 数学实验是指学生用自己编写的程序验证算式的正确性的实验.正确性包括稳定性和 收敛性两方面的容,并都用“误差”作检验标准,此外数学实验也含验证算法的复杂性 在数学实验里,该误差有时指计算值和理论值的差,有时指计算值和另一计算值之间的 差·这里的另一计算值是指前人用计算机算出的正确性和误差大小都得到公认的一个值或 组值,有时也指自己程序两次在不同情况下(往往是取不同步长或精度)计算结果之差 和物理、化学实验不一样,物理、化学实验的实验仪器器材以及实验内容、实验步骤都 是事先确定好了的,学生的任务通常仅仅是验证·大学生因做理化实验而有了新的发现或 发明创造的事甚>数学实验课的程序须学生自己编写.为了验证算式的正确性,其程序 用例常常也要由目己挑选就这个意义上讲数学实验比物理、化学实验重要难度也要大一 些 我们这本书中的算法和其他计算方法中的算法不同·其他计算方法中的一个算法是指 个计算公式,而这里的算法是指具有相同基本程序模块的一类公式.因此数学实验的内 容还包含熟悉了解各基本程序模块结构选取程序用数值计算公式,选取程序用例(通常同 输人数据直接相兴) 选取程序用公式和程序用例的原则是 程序用公式必须属指定算法类 程序用例简单、有代表性,或者能用手算算出结果或者已有被公认的正确的计算 结果 程序用例迪常不止一个,要能体现程序的各种功能 和物理化学实验一样每一次数学实验前学生都必须写实验名称实验目的实验过 程·做完实验后迁应写明实验(计算)结果及结论并附上源程序清单或磁盘 和理化实验不同,作数学实验之前学生通常应编写好计算程序并准备好程序用例.由 于学生所编写的科序很难绝对相同,所选程序用例有差别因此实验结论虽应相同结果却 有一定差异 此外数学实张有时还要验证算法的复杂性,结论中还涉及程序设计技巧等问题 数学实验和计算机语言课中的上机实习虽然都是编程序并让计算机算结果但两者之 间差异甚大.数实验让学生验证的是计算方法以及和计算方法有关的数学分析和高等代 数等数学定义定里和性质,是让学生熟悉并掌握各类算法和基本程序模块之间的关系;而 语言课的上机实习主要是让学生熟悉该语言的词法、句法、语法以及该语言的特点,计算机 语言课也讲结构,算机语言课中的绪构是指和算法并无直接联系的循环结构、分支结构和 顺序结构数学实验中的结构是指同类算法的基本程序结构 总之数学实验的比之语言课的上机实习更灵活,也更难 255·

本教材共安排六个实验,前两个实验不涉及计算方法的内容可先做后四个实验可按 教学内容安排,六个实验约需要20~24个学时(不含课外准备 为了保证实验部分的完整性和独立性每个实验之前我们增加了预备知识一档,简约介 绍算法所属公式的数学表达式 实验一级数和及项数不定的累加和算法基本程序模块结构 预备知识 累加和计算可月下面两箅式描述: a (1) (2) 式(1)就是我们前面书中介绍的累加和算法的数学描述,当i∞时,式(1)变成了式 (2)·若式(2)有意义,显然必有 实际计算时,我们仅算其有限项之和,到底取多少项,事前常常不清楚,因此式(2)也称为通 项项数不确定的累加和计算 假设|aep) 计算a[ s+a i] S4:输出s 若用for型循环,则伪语言程序为 S输人一个相大的n值 输入循环结条件ep 值 S2: for(i=l; iep) s=+a[i]; else g0 to出循环 ·256

S3:输出 两个伪语言糙序都可作为项数不确定的累加和算法基本程序模块 实验目的 通过编写数手册中任选的 Taylor级数和的计算,掌握累加和算法,学会利用累加和 计算基本程序模编写各种累加和计算程序;弄清通项项数确定和不确定的累加和计算基 本程序模块结构系,在正确的位置赋正确的初值合理利用循环结束条件 实验内容 (公式可自选下面公式供参考) 套用累加计算基本程序模块按公式(4) sent 2 x (4) 编写计算x的程月 2.套用项数于确定的累加和计算基本程序模块按式(5) (5) 编写计算r的程序 实验步骤 l·课下编写计算式(4)式(5)程序; 2.调试两个程序; 3程序调通后比较两个程序计算结果; 4.改变c值再北较计算截断误差(与项数之间关系) 实验结论(心得、体会 思考题 l.当x=2时程序计算结果怎样,为什么? 2当z接近2我时计算结果怎么样 实验二连乘积计算及项数不定的连乘积计算基本程序模块 预备知识 连乘积计算可月以下两个算式描述: (1)

2) 显然当i→∞时,式(1)变成了式(2) 对于式(2),肯有 lima: 1 因此实际计算时,取值是有限的通常当 a-1|<ε(e) 时,后面的a,不再广算 实验目的 通过编写教材扣指定公式程序掌握连乘积算法,学会利用连乘积基本程序模块编写连 乘积计算程序;弄通项项数确定和不确定的连乘积基本程序模块之间关系,能在合理位置 为连乘积计算赋积直可以正确使用循环结束条件 实验内容 1.根据书中连乘积计算基本程序模块及实验一中不定项累加和计算基本程序模块确 定不定项连乘积计算基本程序模块 2.套用连乘积汁算基本程序模块和不定项连乘积计算基本程序模块编写下述两个公式 的计算程序 (9 49×11×13×15) 18×:×22×24×261( 7×1×19× 2)”4}26×812 (2+2)(2+4)…(2+2 (2+1)(2+3)…(2+zi+1 舍去|(2+2)(2+4)(2+2+2) (2+1)(2+3)…(2+ 3-1<10各项 实验步骤 1.编写不定址连乘积计算仍语言程序(基本程序模块); 2编写式(5)式(6)的计算程序; 3运行程序比较两者计算结果; 4改变c值拜汁算再比较结果 实验结论(心得、体会) 思考题 项数确定和不确定的连乘积和累加和计算基本程序模块有无本质差别?

实验三递推算法程序编写 预备知识 对于常微分方程 de f(t,y) y (o)= yo 三阶 Runge-Futta法计算公式为 yit h(crk, +C2k,+c,) k:=f(1,y) 内=(+2h,y+号M) 中点法公式是 k=f(t+h,y一hk1+2hk2) y;+2 why 对于三对角方组 (2) a3 b3 d e P2 (4) Pn 户1=b :c/P P i =b;,q1 而求解计算公式为: y-1)/p i=2,3,…,n Ji"qrI 259

上面公式为赶法计算公式 实验目的 通过编写三介 Runge-Kuta法、中点法解常微分方程(初值问题)计算程序,通过编写 追赶法解三对角程组程序进一步熟悉了解递推算法基本程序模块结构以达到能套用该 基本程序模块编同类程序;通过三阶 Runge-Kuta法、中点法计算结果的比较,对算法的 稳定性有较深刻感性认识通过追赶法程序和 Gauss消元法程序比较两算法的效率 实验内容 1.套用递推鲜法基本程序模块编写追赶法程序; 2.套用递推鲜法基本程序模块编写三阶 Runge-Kutta法解常傲分方程程序; 3.编写中点法解常微分方程程序 4给出不同步长及不同的递推次数比较2和3的结果 实验步骤 1.调试并运行你所编写的三阶 Runge-Kutta法程序,尽量将td取大一些h取小一些, 即n值取大一些记下y(t)值; 2调试你所纸写的中点法程序和三阶 Runge-Kutta法用同一程序用例,同-t值,h 值计算并记下各:t)值; 3.调试你所组写的追赶法程序.正确录人Gass列主元消元法程序.用同一程序用例 比较其计算结果·長好在两程序外加一重循环(须修改说明),让循环次数相同用手表或跑 表测量两程序运有谢时间 实验结论 思考题 1.为什么h轼小时,n较大时三阶 Runge-Kutta法程序和中点法程序结果不一样? 2.追赶法算法是否也可列入广义递推算法? 实验四广义递推算法 预备知识 Gas列主元消元法可计算行列式值.其计算过程及计算公式为: 1·按列选主元 算法:尝试法 选第i列主元,尝试范围为一重循环初值取j=i,终值为j=n;定解条件是找|a 最大者 ·260·

2.将主元行换至第i行.若主元在第A行,则计算累加和Ss∑(p-i) 3.消元 消元公式为 a1) j=i+1,i+2,…,n(1) k=i+1,t+2 4计算连乘积 i-1) i=1 注意:将一矩阵中任一行乘一任意数和另一行相加不影响矩阵对应的行列式值但交换 行位置则可能使行列式值变号 实验目的 通过用 Gauss消肖元法计算行列式值程序编写,加深广义递推算法的基本程序模块认识 并附带对连乘积计、尝试法基本程序模块有进一步了解 实验内容 1.利用广义递推算法基本程序模块及 Gauss列主元消元解方程组程序编写Gaus列 主元法求行列式值私序; 2.比较Gaus列主元法求解方程组和计算行列式值两程序 实验结论 思考题 1.能否在将第l行和i行元素交换以后,将新的第i行元素同除以an? 2.能否不计算S的值? 实验五迭代法基本程序模块实验 预备知识 对于方程f(x)=0若f(a,)f(b)<0,a,b,充分小(不会有三个以上单根),则可用优选 法求根优选法计算公式是

fc,=a1+0.618(b,-a) c,f(a;)f(c)>0 a;f(a1)f(c1)0 b1f(b)f(c2)<0 lf(c)<e时迭代结束 欲求f(x)=),在x∈[a,b上所有根,可参见教材中对分法求根程序 注意:千万~要把优选法公式写成c=0.618(b;-a1) 实验目的 通过编写优选法求f(x)=0,在x∈[a,b上所有根的C语言程序,进一步熟悉迭代法 基本程序模块 实验步骤 1·编写优选法求f(x)=0,x∈(a,b〕上所有根的程序 2任选具体f(x)=0,及a和b保证f(x)在(a,b上至少有两个根 3将所得结混和对分法比较 实验结论 思考题 1.能否用|c,-b,<e作为迭代结束条件? 2优选法迭代公式为c=a;+0.618(b-a)对分法公式为什么是c,=(a+b)/2 实验六迭代法2基本程序模块实验 预备知识 求解方程维4x=b的 Seidel迭代算法为 x”=(-∑x-∑a+x-)/ j計1 t=1,2 若用n表示A矩阵中第i行第一个非零元素(对角线元素除外)在非零元素中的序号 (按行列顺序),显然第i行的非零元素(对角线元素除外)的个数为r,+1-r;用l表示第j 个非零元素的列号,即a的列号公式(1)变为

l =bilati) 2=a,/ai(i) ai()表示第行对角线元素 当|x"-x("1<e时,迭代结束 实验目的 通过编写求解方程组的压缩存储(只记系数矩阵中非零元素) Seidel迭代程序,真正掌 握迭代法2基本程字模块结构 实验内容 1.自己设计并凑一个方程组 Ax=b 使得方程组的阶白10以上;方程组系数矩阵每行非零元素的个数不超过4个;且使解都为整 数;为了使迭代收,最好使A矩阵对角占优 2编写压缩储 Seidel迭代程序 3.录人一般存储 Seidel迭代程序 4调试并运行两个程序(调试程序时A为三阶) 实验步骤 1.见实验内賽 2.比较两个程字的差别,比较运行时间 实验结论 思考题 为什么A红共n行,程序中要设rn+? 2.为什么要*寸角线元索和其他非零元素分开存放? 3是否还须用一数组存放A矩阵中各非零元素的行号? 4即使A矩阵阳和无非零元素,是否也可用该程序?此时是否可不用r和l数组? 5.程序中是否订用一个一维数组x,此时程序简单还是用两个数组,一个表示前一轮 值,一个表示当前值程序简单? ·263·

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有