计算方法大作业

计算方法大作业
计算方法大作业

数值分析大作业-三、四、五、六、七

大作业 三 1. 给定初值 0x 及容许误差 ,编制牛顿法解方程f (x )=0的通用 程序. 解:Matlab 程序如下: 函数m 文件:fu.m function Fu=fu(x) Fu=x^3/3-x; end 函数m 文件:dfu.m function Fu=dfu(x) Fu=x^2-1; end 用Newton 法求根的通用程序Newton.m clear; x0=input('请输入初值x0:'); ep=input('请输入容许误差:'); flag=1; while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)

while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)=ep flag=0; end end fprintf('最大的sigma 值为:%f\n',sigma); 2.求下列方程的非零根 5130.6651()ln 05130.665114000.0918 x x f x x +??=-= ?-???解:Matlab 程序为: (1)主程序 clear clc format long x0=765; N=100; errorlim=10^(-5); x=x0-f(x0)/subs(df(),x0); n=1; while nerrorlim n=n+1; else break ; end x0=x; end disp(['迭代次数: n=',num2str(n)]) disp(['所求非零根: 正根x1=',num2str(x),' 负根x2=',num2str(-x)]) (2)子函数 非线性函数f function y=f(x) y=log((513+0.6651*x)/(513-0.6651*x))-x/(1400*0.0918); end

西电行政方法模拟题1(答案)

模拟题(一) 一、选择题(单选,14道小题,每题3分,共42分) 1. 设A X = 2.40315是真值T X =2.403147的近似值,则A X 有__C__位有效数字。 A 、4 B 、5 C 、6 D 、7 2. 上题中A X 的绝对误差限为 C 。 A 、30.510-? B 、40.510-? C 、50.510-? D 、60.510-? 3. 当计算公式的第n +1步的误差e n +1与第n 步的误差e n 满足__A__时,称此计算公式是绝对稳定的。 A 、 11n n e e +≤ B 、11n n e e +≥ C 、10n n e e +≤ D 、10n n e e +≥ 4. 数值x *的近似值x ,那么按定义x 的相对误差是__A_。 *** A B *C D * * x x x x x x x x x x x ----、 、、 、 5. 用列主元高斯消去法解线性方程组1231231 2231425427 x x x x x x x x -+=?? ++=??+=?,则第一次选取的列主元为 B 。 A 、2 B 、4 C 、1 D 、-1 6. 设?(x)=4x 4+4x 3-2x 2+3x +2,取x 1=0,x 2=0.2,x 3=0.5,x 4=1,x 5=2,x 6=2.4,x 7=4。在这些点上关于?(x)的插值多项式为6()P x ,则?(0.1)-6(0.1)P =_____D_____。 A 、0.01 B 、0.002 C 、0.003 D 、0 7. 以下方程求根的数值计算方法中,收敛速度最快的是: C 。 A 、二分法 B 、简单迭代法 C 、牛顿迭代法 D 、割线法 8. 要构造f (x )=e x 的4次拉格朗日多项式,至少需要已知f (x )上 C 个插值节点的取值。 A 、3 B 、4 C 、5 D 、6

数值计算方法大作业

目录 第一章非线性方程求根 (3) 1.1迭代法 (3) 1.2牛顿法 (4) 1.3弦截法 (5) 1.4二分法 (6) 第二章插值 (7) 2.1线性插值 (7) 2.2二次插值 (8) 2.3拉格朗日插值 (9) 2.4分段线性插值 (10) 2.5分段二次插值 (11) 第三章数值积分 (13) 3.1复化矩形积分法 (13) 3.2复化梯形积分法 (14) 3.3辛普森积分法 (15) 3.4变步长梯形积分法 (16) 第四章线性方程组数值法 (17) 4.1约当消去法 (17) 4.2高斯消去法 (18) 4.3三角分解法 (20)

4.4雅可比迭代法 (21) 4.5高斯—赛德尔迭代法 (23) 第五章常积分方程数值法 (25) 5.1显示欧拉公式法 (25) 5.2欧拉公式预测校正法 (26) 5.3改进欧拉公式法 (27) 5.4四阶龙格—库塔法 (28)

数值计算方法 第一章非线性方程求根 1.1迭代法 程序代码: Private Sub Command1_Click() x0 = Val(InputBox("请输入初始值x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = (Exp(2 * x0) - x0) / 5 If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)

1.2牛顿法 程序代码: Private Sub Command1_Click() b = Val(InputBox("请输入被开方数x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = x0 - (x0 ^ 2 - b) / (2 * b) If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求56的值。(ep=10-10)

数值分析大作业三 四 五 六 七

大作业 三 1. 给定初值 0x 及容许误差 ,编制牛顿法解方程f (x )=0的通用程序. 解:Matlab 程序如下: 函数m 文件:fu.m function Fu=fu(x) Fu=x^3/3-x; end 函数m 文件:dfu.m function Fu=dfu(x) Fu=x^2-1; end 用Newton 法求根的通用程序Newton.m clear; x0=input('请输入初值x0:'); ep=input('请输入容许误差:');

flag=1; while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)

while flag==1 sigma=k*eps; x0=sigma; k=k+1; m=0; flag1=1; while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)=ep flag=0;

end end fprintf('最大的sigma 值为:%f\n',sigma); 2.求下列方程的非零根 5130.6651()ln 05130.665114000.0918 x x f x x +?? =-= ?-???解: Matlab 程序为: (1)主程序 clear clc format long x0=765; N=100; errorlim=10^(-5); x=x0-f(x0)/subs(df(),x0); n=1;

西电计算方法作业

习题1 1. x1=4.8675 x1有5位有效数字;x2=4.08675 x2有6位有效数字; X 3=0.08675 x3有4位有效数字;x4=96.4730 x4有6位有效数字; X 5=96×105 x5有2位有效数字;x6=0.00096 x6有2位有效数字。 8.解: y n =5y n-1-2 n=1,2, (1) y 0= 3 在计算y 0时有舍入误差,设为e 0,并设求得的y 0的近似值y 0,即e 0= y 0 -y 0,所以, y n = 5y n-1-2 n=1,2,… (2) y 0=y 0-e 0 由(1)-(2)得:y n - y n =5(y n-1- y n-1) 所以y n -y n =5n e 0 n=1,2,… 所以e 10=510 e 0=510 ( 3 -1.73)=20027.42 所以这个计算过程不稳定。 10.解:f(x)=8x 5-0.4x 4+4x 3 -9x+1 =(8x 4-0.4x 3+4x 2 -9)x+1 =((8x 3-0.4x 2 +4x)x-9)x+1 =(((8x 2 -0.4x+4)x-9)x+1 =((((8x-0.4)x+4)x-9)x+1 b 0=8; b 1=8x-0.4=8×3-0.4=23.6; b 2= b 1x+4=23.6×3+4=74.8; b 3= b 2x=74.8×3=224.4; b 4= b 3x-9=224.4×3-9=664.2; b 5= b 4x+1=664.2×3+1=1993.6; 所以f(3)= b 5=1993.6. 8 -0.4 4 0 -9 1 X=3 24 70.8 224.4 673.2 1992.6 8 23.6 74.8 224.4 664.2 1993.6 所以f(3)=1993.6. 习题2 1. 证明:令f(x)=1-x-sinx,则f ′(x)=-1-cosx>0, 所以f (x )在区间[0,1]中连续且严格单调递增。 又因为f(0)=1,f(1)=-sin1,即f(0)f(1)<0, 所以方程1-x-sinx=0在区间[0,1]中有且只有一个根。 由1/2k+1=12 ×10-3 得:k ≥3ln10ln2 ≥9.965 所以使用二分法求误差不大于12 ×10-3 的根需要二分10次。 2. 用简单迭代法求e x -4x=0的根,精确至四位有效数字 解:设f(x)= e x -4x,则f ′(x)= e x -4。 因为f(0.35)= e 0.35-4×0.35=0.019068,f(0.38)= e 0.38 -4×0.38=-0.057715, f(0.35)f(0.38)<0且当x ∈[0.35,0.38]时f ′(x)= e x -4<0即f(x)在[0.35,0.38] 上单调递减。 所以f(x) 在[0.35,0.38]上有且仅有一个根。

西电计算机图形学作业

1、结合个人的使用体会,谈谈显卡的主要技术指标 主要技术指标: 最大分辨率:当一个图像被显示在屏幕上时,它是由无数小点组成的,它们被称为像素(Pixel)。最大分辩率是指显示卡能在显示器上描绘点的最大数量,一般以“横向点数X 纵向点数”表示。 色深:像素描绘是的是屏幕上极小的一个点,每一个像素可以被设置为不同的颜色和亮度。像素的每一种状态都是三种颜:红、蓝、绿所控制,当它们都处于最大亮度时,像素就呈现为白色,;反之,像素为黑色。像素的颜色数称为色深,该指标用来描述显示卡能够显示多少种颜色,一般以多少色或多少bit色来表示,如8bit色深可以显示256种颜色,16bit色深可显示65536种颜色,称为增强色,24bit色深可以显示16M 种颜色,称为真颜色,所以色深的位数越高,所能看见的颜色就越多,屏幕上画面的质量就越好。但色深增加时,也增大了显示卡所要处理的数据量,这就要求显示卡配有更大显示内存并具有更高的转换速率。 刷新频率:刷新频率是指图像在显示器上更新的速度,也就是图像每秒在屏幕上出现的帧数,单位为Hz (赫兹)。刷新频率越高,屏幕上图像的闪烁感就越小,图像越稳定,视觉效果也越好。一般刷新频率在75Hz以上时,人眼对影像的闪烁才不易查觉。这个性能指标主要取决于显示卡上RAMDAC的转换速度。显存:如果说显存带宽决定了显卡的性能,那么显存位宽就决定了显存带宽,因为在相同频率下,64位显存的带宽只有128位显存的一半,当遇到大量像素渲染工作时,因为显存位宽的限制会造成显存带宽的不足,最直接的后果就是导致传输数据的拥塞,速度明显下降屏幕更新频率(Vertical刷新Rate)指显示器每秒能对整个画面重复更新的次数,若此数值为72Hz,表示显卡每秒将送出72张画面讯号给显示器。在显卡中的渲染管线包括很多,比如像素渲染管线、纹理渲染管线、顶点渲染管线等等,它们在显卡中起到各自的作用。 体会:同型号同容量的情况下,可以比较:1.显存位宽(越大越好)以及显存用料比如GDDR1/GDDR2/GDDR3;2.核心频率和显存频率(越高越好)如:256bit/256M与128bit/256M;3.显卡的速度,就是几点几纳秒(越小越好),一般显卡的速度只有查显卡的说明书才能得出。 2、举例说明中点画线法的基本原理并编程实现 基本原理: 直线y=k*x+b 可以写成y-k*x-b=0的形式;进而写成函数F(x,y)=y-k*x-b;注意在此要使得y的系数一定为正,这和我们以下讨论的直线和点的位置关系息息相关。只有y的系数是正的时候,以下关系式才成立;如果y的系数是负的话,下面的关系式是相反的; 当点在直线上方时,点的坐标带入函数,F(x,y)>0; 当点在直线下方时,点的坐标带入函数,F(x,y)<0; 当点在直线上时,点的坐标带入函数,F(x,y)=0; 已知点P1(x0,y0),P(x1,y1)并且都是整数坐标对。令dx=x1-x0;dy=y1-y0;并且x1>x0恒成立,那么dx恒大于0;且k=dy/dx;方程y-k*x-b=0改写成y-(dy/dx)*x-b=0; 最终函数F(x,y)=y*dx-x*dy-B;其中B=b*dx; 我们讨论 (1)00时,中点在直线的上方,我们选取中点下方的整数坐标对,即点(x0+1,y0),也就是x++,而y 的值不变。我们继续判断下一个中点(x0+2,y0+0.5),带入函数,d=2*F(x0+2,y0+0.5)=d0+(-2*dy);其中

西工大计算方法作业答案

参考答案 第一章 1 *1x =1.7; * 2x =1.73; *3x =1.732 。 2. 3. (1) ≤++)(* 3*2*1x x x e r 0.00050; (注意:应该用相对误差的定义去求) (2) ≤)(*3*2*1x x x e r 0.50517; (3) ≤)/(*4*2x x e r 0.50002。 4.设6有n 位有效数字,由6≈2.4494……,知6的第一位有效数字1a =2。 令3)1()1(1* 102 1 102211021)(-----?≤??=?= n n r a x ε 可求得满足上述不等式的最小正整数n =4,即至少取四位有效数字,故满足精度要求可取6≈2.449。 5. 答:(1)*x (0>x )的相对误差约是* x 的相对误差的1/2倍; (2)n x )(* 的相对误差约是* x 的相对误差的n 倍。 6. 根据******************** sin 21)(cos 21sin 21)(sin 21sin 21)(sin 21)(c b a c e c b a c b a b e c a c b a a e c b S e r ++≤ =* *****) ()()(tgc c e b b e a a e ++ 注意当20* π < >c tgc ,即1 *1 * )() (--

7.设20= y ,41.1*0 =y ,δ=?≤--2* 00102 1y y 由 δ1* 001*111010--≤-=-y y y y , δ2*111*221010--≤-=-y y y y M δ10*991*10101010--≤-=-y y y y 即当0y 有初始误差δ时,10y 的绝对误差的绝对值将减小10 10-倍。而110 10 <<-δ,故计算过程稳定。 8. 变形后的表达式为: (1))1ln(2--x x =)1ln(2-+-x x (2)arctgx x arctg -+)1(=) 1(11 ++x x arctg (3) 1ln )1ln()1(ln 1 --++=? +N N N N dx x N N =ΛΛ+-+- +3 2413121)1ln(N N N N 1ln )11ln()1(-++ +=N N N N =1)1ln()1 1ln(-+++N N N (4)x x sin cos 1-=x x cos 1sin +=2x tg

西安交通大学计算方法B大作业资料

计算方法上机报告 姓名: 学号: 班级: 目录 题目一----------------------------------------------------------------- 4 - 1.1题目内容-------------------------------------------------------- 4 - 1.2算法思想-------------------------------------------------------- 4 -

1.3Matlab 源程序----------------------------------------------------- 5 - 1.4计算结果及总结------------------------------------------------- 5 - 题目二----------------------------------------------------------------- 7 - 2.1题目内容-------------------------------------------------------- 7 - 2.2算法思想-------------------------------------------------------- 7 - 2.3 Matlab 源程序---------------------------------------------------- 8 - 2.4计算结果及总结------------------------------------------------- 9 - 题目三--------------------------------------------------------------- -11- 3.1题目内容----------------------------------------------------------- 11 - 3.2算法思想----------------------------------------------------------- 11 - 3.3Matlab 源程序--------------------------------------------------- -13 - 3.4计算结果及总结----------------------------------------------------- 14 - 题目四--------------------------------------------------------------- -15 - 4.1题目内容----------------------------------------------------------- 15 - 4.2算法思想----------------------------------------------------------- 15 - 4.3Matlab 源程序--------------------------------------------------- -15 - 4.4计算结果及总结----------------------------------------------------- 16 - 题目五--------------------------------------------------------------- -18 - -18 - 5.1题目内容 5.2算法思想----------------------------------------------------------- 18 - 5.3 Matlab 源程序--------------------------------------------------- -18 -

西安电子科技大学 研究生 电磁场数值分析期末考试题

西安电子科技大学何超 电磁场数值分析 考点1:矩量法的一般过程(算子方程、离散化过程、选配过程、矩阵方程求解)。 给定算子方程和基函数,采用伽略金法,计算阻抗矩阵和激励电压矩阵,从 而求得电流系数矩阵,即得到方程的近似解。(矩阵维数一般为2×2,或3×3, 便于计算)。 1

https://www.360docs.net/doc/957089410.html,/link?url=oRwkn_6gajdEKC3YUFvvipOKLuZJXnVk43odUwyDWYRao nT1SlZLKEq9PCQba5xPYg_7mXpK8pZW0R-_RfT5EOXLvj0BKqKmQ6cfXMuW8P7 有3个矩量法例题 考点2:ScaLAPACK 的矩阵分布方式。

给定进程网格,矩阵分块大小,要求能写出按ScaLAPACK矩阵分布方式,每个进程对应的矩阵元素。? 1 并行矩阵填充在PC集群系统中MPI并行矩量法研究36 37 考点3:temporary block column 对active block column 分解产生的影响.对于当前活动列块(即正在进行LU分解的列块),要能够分析其左侧临时列块对其LU分解所产生的影响。?英文书写得很详细了啊45--55有 lu分解 将系数矩阵A转变成等价两个矩阵L和U的乘积,其中L和U分别是下三角和上三角矩阵。当A 的所有顺序主子式都不为0时,矩阵A可以分解为A=LU,且当L的对角元全为1时分解唯一。其中L是下三角矩阵,U是上三角矩阵。 4阶矩阵的LU分解[1] 高斯消元法见数值分析教材 考点4:积分方程的建立 要求掌握EFIE 、MFIF 、PMCHW(电场、磁场、表面积分方程)根据等效原理建立的过程,即对于给定的问题(PEC (理想导体)或介质)能根据等效原理建立积分方程(不要求写出场的位函数表达式,主要考察方程建立的思想)。看矩量法

2020年奥鹏吉大网络教育《计算方法》大作业解答

2020年奥鹏吉大网络教育《计算方法》大作业解答 (说明:前面是题目,后面几页是答案完整解答部分,注意的顺序。) 一、解线性方程 用矩阵的LU分解算法求解线性方程组 用矩阵的Doolittle分解算法求解线性方程组 用矩阵的Doolittle分解算法求解线性方程组 用高斯消去法求解线性方程组 用高斯消去法求解线性方程组 用主元素消元法求解线性方程组 用高斯消去法求解线性方程组 利用Doolittle分解法解方程组Ax=b,即解方程组 1、用矩阵的LU分解算法求解线性方程组 X1+2X2+3X3 = 0 2X1+2X2+8X3 = -4 -3X1-10X2-2X3 = -11 2、用矩阵的Doolittle分解算法求解线性方程组 X1+2X2+3X3 = 1 2X1– X2+9X3 = 0 -3X1+ 4X2+9X3 = 1 3、用矩阵的Doolittle分解算法求解线性方程组 2X1+X2+X3 = 4 6X1+4X2+5X3 =15 4X1+3X2+6X3 = 13 4、用高斯消去法求解线性方程组

2X 1- X 2+3X 3 = 2 4X 1+2X 2+5X 3 = 4 -3X 1+4X 2-3X 3 = -3 5、用无回代过程消元法求解线性方程组 2X 1- X 2+3X 3 = 2 4X 1+2X 2+5X 3 = 4 -3X 1+4X 2-3X 3 = -3 6、用主元素消元法求解线性方程组 2X 1- X 2+3X 3 = 2 4X 1+2X 2+5X 3 = 4 -3X 1+4X 2-3X 3 = -3 7、用高斯消去法求解线性方程组 123123123234 4272266 x x x x x x x x x -+=++=-++= 8、利用Doolittle 分解法解方程组Ax=b ,即解方程组 12341231521917334319174262113x x x x -? ????? ???? ??-??????=? ? ????--?????? --???? ??

西安交通大学计算方法B大作业

计算方法上机报告 姓名: 学号: 班级:

目录 题目一------------------------------------------------------------------------------------------ - 4 - 1.1题目内容 ---------------------------------------------------------------------------- - 4 - 1.2算法思想 ---------------------------------------------------------------------------- - 4 - 1.3Matlab源程序----------------------------------------------------------------------- - 5 - 1.4计算结果及总结 ------------------------------------------------------------------- - 5 - 题目二------------------------------------------------------------------------------------------ - 7 - 2.1题目内容 ---------------------------------------------------------------------------- - 7 - 2.2算法思想 ---------------------------------------------------------------------------- - 7 - 2.3 Matlab源程序---------------------------------------------------------------------- - 8 - 2.4计算结果及总结 ------------------------------------------------------------------- - 9 - 题目三----------------------------------------------------------------------------------------- - 11 - 3.1题目内容 --------------------------------------------------------------------------- - 11 - 3.2算法思想 --------------------------------------------------------------------------- - 11 - 3.3Matlab源程序---------------------------------------------------------------------- - 13 - 3.4计算结果及总结 ------------------------------------------------------------------ - 14 - 题目四----------------------------------------------------------------------------------------- - 15 - 4.1题目内容 --------------------------------------------------------------------------- - 15 - 4.2算法思想 --------------------------------------------------------------------------- - 15 - 4.3Matlab源程序---------------------------------------------------------------------- - 15 - 4.4计算结果及总结 ------------------------------------------------------------------ - 16 - 题目五----------------------------------------------------------------------------------------- - 18 -

数值分析大作业

数值分析报大作业 班级:铁道2班 专业:道路与铁道工程 姓名:蔡敦锦 学号:13011260

一、序言 该数值分析大作业是通过C语言程序编程在Microsoft Visual C++ 6.0编程软件上运行实现的。本来是打算用Matlab软间来计算非线性方程的根的。学习Matlab也差不多有一个多月了,感觉自己编程做题应该没什么问题了;但是当自己真心的去编程、运行时才发现有很多错误,花了一天时间修改、调试程序都没能得到自己满意的结果。所以,我选择了自己比较熟悉的C程序语言来编程解决非线性的求值问题,由于本作业是为了比较几种方法求值问题的收敛速度和精度的差异,选择了一个相对常见的非线性函数来反映其差异,程序运行所得结果我个人比较满意。编写C语言,感觉比较上手,程序出现问题也能比较熟练的解决。最终就决定上交一份C程序语言编程的求值程序了!

二、选题 本作业的目的是为了加深对非线性方程求根方法的二分法、简单迭代法、、牛顿迭代法弦截法等的构造过程的理解;能将各种方法的算法描述正确并且能够改编为程序并在计算机上实现程序的正确合理的运行,能得到自己满意的结果,并且能调试修改程序中可能出现的问题和程序功能的增减修改。本次程序是为了比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。 为了达到上面的条件我选择自己比较熟悉的语言—C语言来编程,所选题目为计算方程f(x)=x3-2x-5=0在区间[2,3]内其最后两近似值的差的绝对值小于等于5 ?的根的几种方法的比较。 110- 本文将二分法、牛顿法、简单迭代法、弦截法及加速收敛法这五种方法在同一个程序中以函数调用的方式来实现,比较简洁明了,所得结果能很好的比较,便于分析;发现问题和得出结论。

西电数字信号处理大作业

第二章 2.25 已知线性时不变系统的差分方程为 若系统的输入序列x(x)={1,2,3,4,2,1}编写利用递推法计算系统零状态响应的MATLAB程序,并计算出结果。 代码及运行结果: >> A=[1,-0.5]; >> B=[1,0,2]; >> n=0:5; >> xn=[1,2,3,4,2,1]; >> zx=[0,0,0];zy=0; >> zi=filtic(B,A,zy,zx); >> yn=filter(B,A,xn,zi); >> figure(1) >> stem(n,yn,'.'); >> grid on;

2.28图所示系统是由四个子系统T1、T2、T3和T4组成的,分别用单位脉冲响应或差分方程描述为 T1: 其他 T2: 其他 T3: T4: 编写计算整个系统的单位脉冲响应h(n),0≤n≤99的MATLAB程序,并计算结果。 代码及结果如下: >> a=0.25;b=0.5;c=0.25; >> ys=0; >> xn=[1,zeros(1,99)]; >> B=[a,b,c]; >> A=1; >> xi=filtic(B,A,ys); >> yn1=filter(B,A,xn,xi); >> h1=[1,1/2,1/4,1/8,1/16,1/32]; >> h2=[1,1,1,1,1,1]; >> h3=conv(h1,h2); >> h31=[h3,zeros(1,89)]; >> yn2=yn1+h31; >> D=[1,1];C=[1,-0.9,0.81]; >> xi2=filtic(D,C,yn2,xi); >> xi2=filtic(D,C,ys); >> yn=filter(D,C,yn2,xi); >> n=0:99; >> figure(1) >> stem(n,yn,'.'); >> title('单位脉冲响应'); >> xlabel('n');ylabel('yn');

西安交大计算方法b大作业课件

《计算方法B》上机 实验报告 学院:机械工程学院 班级: 姓名: 学号: 2015年12月22日

1 1.计算以下和式: S = ∑ 8n + 1 - 8n + 4 - 8n + 5 - 8n + 6 ? ,要求: 4 2 1 1 ∞ n =0 16 n ? ? ? ? (1)若保留 11 个有效数字,给出计算结果,并评价计算的算法; (2)若要保留 30 个有效数字,则又将如何进行计算。 实现思想: 以上问题出现了近似数相减的问题,为了减小误差,可分别求得减数之和 以及被减数之和,最后将两者相减。另外,减数与被减数求和均为同号计算, 按照绝对值递增顺序相加可减小舍入误差。此题中对有效数字有要求,因而计 算时首先需要根据有效数字位数计算得出迭代次数,以保证计算值的精度。 源程序: m=input('输入有效数字个数m='); s0=1;s1=0;s2=0;n=0; %判断迭代次数 while s0>=0.5*10^-(m-1) s0=4/(16^n*(8*n+1))-2/(16^n*(8*n+4))-1/(16^n*(8*n+5))- 1/(16^n*(8*n+6)); n=n+1; end %分别求解各项并求和 for k=n-1:-1:0 a1=4/(16^k*(8*k+1)); a2=2/(16^k*(8*k+4)); a3=1/(16^k*(8*k+5)); a4=1/(16^k*(8*k+6)); s1=a1+s1; s2=a4+a3+a2+s2; end S=vpa(s1-s2,m)

实验结果:11位有效数字计算结果如图1所示;30为有效数字计算结果如图2所示。 图1.11位有效数字计算结果图2.30为有效数字计算结果

西安电子科技大学算法上机报告

西安电子科技大学 (2018年度) 算法分析 实 验 报 告 实验名称:渗透实验 班级:1603012 姓名:朱斌 学号:16030120032

实验一:渗透问题(Percolation) 一、实验题目 使用合并-查找(union-find)数据结构,编写程序通过蒙特卡罗模拟(Monte Carlo simulation)来估计渗透阈值的值。 给定由随机分布的绝缘材料和金属材料构成的组合系统:金属材料占多大比例才能使组合系统成为电导体?给定一个表面有水的多孔渗水地形(或下面有油),水将在什么条件下能够通过底部排出(或油渗透到表面)?科学家们已经定义了一个称为渗透(percolation)的抽象过程来模拟这种情况。 模型:我们使用N×N网格点来模型一个渗透系统。每个格点或是open格点或是blocked 格点。一个full site是一个open格点,它可以通过一连串的邻近(左,右,上,下)open格点连通到顶行的一个open格点。如果在底行中有一个full site格点,则称系统是渗透的。(对于绝缘/金属材料的例子,open格点对应于金属材料,渗透系统有一条从顶行到底行的金属路径,且full sites格点导电。对于多孔物质示例,open格点对应于空格,水可能流过,从而渗透系统使水充满open格点,自顶向下流动。) 问题:在一个著名的科学问题中,研究人员对以下问题感兴趣:如果将格点以空置概率p 独立地设置为open格点(因此以概率1-p被设置为blocked格点),系统渗透的概率是多少?当p = 0时,系统不会渗出; 当p=1时,系统渗透。下图显示了20×20随机网格和100×100随机网格的格点空置概率p与渗滤概率。 当N足够大时,存在阈值p*,使得当p p*时,随机N?N网格几乎总是渗透。尚未得出用于确定渗滤阈值p*的数学解。你的任务是编写一个计算机程序来估计p*。

计算方法上机实习题大作业(实验报告).

计算方法实验报告 班级: 学号: 姓名: 成绩: 1 舍入误差及稳定性 一、实验目的 (1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性 二、实验内容 1、用两种不同的顺序计算10000 21n n -=∑,分析其误差的变化 2、已知连分数() 1 01223//(.../)n n a f b b a b a a b =+ +++,利用下面的算法计算f : 1 1 ,i n n i i i a d b d b d ++==+ (1,2,...,0 i n n =-- 0f d = 写一程序,读入011,,,...,,,...,,n n n b b b a a 计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分 1 041 n n x y dx x =+? (0,1,...,1 n = 4、设2 2 11N N j S j == -∑ ,已知其精确值为1311221N N ?? -- ?+?? (1)编制按从大到小的顺序计算N S 的程序 (2)编制按从小到大的顺序计算N S 的程序 (3)按两种顺序分别计算10001000030000,,,S S S 并指出有效位数 三、实验步骤、程序设计、实验结果及分析 1、用两种不同的顺序计算10000 2 1n n -=∑,分析其误差的变化 (1)实验步骤: 分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h 和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0)printf("sun[%d]=%-30f",n,sum); if(n>=10000)break; n++; } printf("sum[%d]=%f\n",n,sum); } b.逆序计算 #include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } (3)实验结果及分析: 程序运行结果: a.顺序计算

计算方法大作业第一次

数值计算第一次大作业 实验目的 以Hilbert 矩阵为例,研究处理病态问题可能遇到的困难。 内容 Hilbert 矩阵的定义是 ,() 11/21/31/1/21/31/41/(1)1/31/41/51/(2)1/1/(1)1/(2)1/(21)n i j H h n n n n n n n =????+????=+??????++-?? 它是一个对称正定矩阵,而且()n cond H 随着n 的增加迅速增加,其逆矩阵1,()n i j H α-=, 这里 ,2(1)(1)!(1)!(1)[(1)!(1)!]()!()! i j i j n i n j i j i j n i n j α+-+-+-=+----- 1) 画出ln(())~n cond H n 之间的曲线(可以用任何的一种范数)。你能猜出 ln(())~n cond H n 之间有何种关系吗?提出你的猜想并想法验证。 用行范数 for n=1:50 for i=1:n for j=1:n A(i,j)=1/(i+j-1); B(i,j)=factorial(n+i-1)*factorial(n+j-1)/((i+j-1)*(factorial(i-1)*facto rial(j-1))^2*factorial(n-i)*factorial(n-j)); end end result1=0; for j=1:n result1=result1+A(1,j); end result1=log(result1); result2=0; for i=1:n for j=1:n result2=B(i,j)+result2; end result(i)=log(result2); end m=max(result);

相关文档
最新文档