您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 东南大学数值分析上机作业汇总
数值分析上机报告院系:学号:姓名:目录作业1、舍入误差与有效数.....................................................................11、函数文件cxdd.m............................................................................12、函数文件cddx.m............................................................................13、两种方法有效位数对比................................................................14、心得.................................................................................................2作业2、Newton迭代法............................................................................21、通用程序函数文件........................................................................22、局部收敛性....................................................................................3(1)最大δ值文件.......................................................................3(2)验证局部收敛性..................................................................43、心得.................................................................................................5作业3、列主元素Gauss消去法..............................................................61、列主元Gauss消去法的通用程序................................................62、解题中线性方程组........................................................................63、心得.................................................................................................8作业4、三次样条插值函数.....................................................................81、第一型三次样条插值函数通用程序:........................................82、数据输入及计算结果..................................................................101作业1、舍入误差与有效数设NjNjS2211,其精确值为1112321NN.(1)编制按从小到大的顺序11131121222NSN,计算NS的通用程序;(2)编制按从大到小的顺序12111111222NNSN,计算NS的通用程序;(3)按两种顺序分别计算642101010,,SSS,并指出有效位数;(4)通过本上机你明白了什么?程序:1、函数文件cxdd.mfunctionS=cxdd(N)S=0;i=2.0;while(i=N)S=S+1.0/(i*i-1);i=i+1;endscript运行结果(省略):S=cxdd(80)S=0.7375772、函数文件cddx.mfunctionS=cddx(N)S=0;fori=N:-1:2S=S+1/(i*i-1);endscript运行结果(省略):S=cddx(80)S=0.7375773、两种方法有效位数对比精确值函数:functionS=jqz(N)S=0.5*(1.5-1.0/N-1.0/(N+1));script运行结果(省略)2NS精确值从小到大从大到小值有效位数值有效位数1000.7400500.74005060.7400496100000.7499000.74990040.749852410000000.7499990.74999960.74985234、心得本题重点体现了数值计算中“大数吃小数”的问题,由于计算机计算的截断特点,从大到小的计算会导致小数的有效数被忽略掉。从题中可以看出,看出按不同的顺序计算的结果是不相同的,按从小到大的顺序计算的值与精确值吻合,而按从大到小的顺序计算的值与精确值有较大的误差。计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低。作业2、Newton迭代法(1)给定初值x0及容许误差ε,编制Newton法解方程f(x)=0根的通用程序。(2)给定方程f(x)=x3/3-x=0,易知其有三个根x1※=3,x2※=0,x3※=3。①由Newton方法的局部收敛性可知存在>0,当x0∈(,),Newton迭代序列收敛于根x2※,试确定尽可能大的;②试取若干个初始值,观察当x0∈(-∞,-1),(-1,),(,),(,1),(1,+∞)时,Newton序列是否收敛以及收敛于哪一个根。(3)通过本上机题,你明白了什么?1、通用程序函数文件定义f(x)函数functionf=fun(x)f=x^3/3-x;end定义f(x)导函数functionf=dfun(x)f=x*x-1;end3定义求近似解函数function[f,n]=newton(x0,ep)flag=1;n=0;while(flag==1)x1=x0-fun(x0)/dfun(x0);n=n+1;if(abs(x1-x0)=ep||n100000)flag=0;endx0=x1;endf=x1;endscript运行结果clear;x0=input('请输入初始值x0:');ep=input('请输入容许误差:');[f,n]=newton(x0,ep);fprintf('方程的一个近似解为:%f\n',x1);2、局部收敛性(1)最大δ值文件flag=1;k=1;x0=0;whileflag==1sigma=k*10^-6;x0=sigma;k=k+1;m=0;flag1=1;whileflag1==1&&m=10^3x1=x0-fun(x0)/dfun(x0);ifabs(x1-x0)10^-6flag1=0;endm=m+1;x0=x1;endif(flag1==1||abs(x0)=10^-6)flag=0;end4endfprintf('最大值为:%f\n',sigma);运行结果为:最大值为:0.774597即得最大的δ为0.774597,Newton迭代序列收敛于根*2x=0的最大区间为(-0.774597,0.774597)。(2)验证局部收敛性在x0∈(-∞,-1)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-100-1.73205115-20-1.73205111-5-1.7320518-1.5-1.7320515结果显示,以上初值迭代序列均收敛于-1.732051,即根*1x。显然,迭代格式初值的选择对于迭代的收敛速度是至关重要的,当初值接近真实值的时候,迭代次数减少。在x0∈(-1,)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-0.951.7320519-0.851.7320516-0.801.73205110-0.781.73205115计算结果显示,迭代序列局部收敛于1.730251,即根*3x。在x0∈(,)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数-0.700.0000005-0.200.0000003-0.050.000000350.050.00000030.200.00000030.700.0000005由newton1.m的运行过程表明,在整个区间上均收敛于0,即根*2x。在x0∈(,1)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数0.80-1.732051100.90-1.73205170.95-1.73205190.98-1.73205112计算结果显示,迭代序列局部收敛于-1.732051,即根*1x。在x0∈(1,+∞)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:X0X1迭代次数1.51.732051551.7320518201.732051111001.73205115结果显示,以上初值迭代序列均收敛于1.732051,即根*3x。综上所述:(-∞,-1)区间收敛于-1.73205,(-1,δ)区间局部收敛于1.73205,局部收敛于-1.73205,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于1.73205。3、心得牛顿迭代法对于初值的选择要求较高,因此,在牛顿迭代时可现通过简单迭代法寻找相对准确一些的值来进行牛顿迭代。对于方程有多解的问题,Newton法求方程根时,牛顿迭代要考虑局部收敛的问题,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。6作业3、列主元素Gauss消去法对于某电路的分析,归结为求解线性方程组RI=V。32-13000-10000-1335-90-1100000-931-1000000R=000-3057-70-500000-747-300000000-3041000000-50027-2000-9000-229VT=[-15,27,-23,0,-20,12,-7,7,10]T(1)编制解n阶线性方程组Ax=b的列主元Gauss消去法的通用程序;(2)用所编程序解线性方程组RI=V,并打印出解向量,保留5位有效数字;(3)在本编程之中,你提高了那些编程能力。1、列主元Gauss消去法的通用程序函数:找每列的主元的函数functionB=zhuyuan(B,t,N,M)fori=0:N-1-tifB(N-i,t)B(N-i-1,t)c=zeros(1,M);forj=1:Mc(j)=B(N-i,j);B(N-i,j)=B(N-i-1,j);B(N-i-1,j)=c(j);endendend进行列消去的函数functionB=xiaoqu(B,t,N,M)fori=t+1:Nl=B(i,t)/B(t,t);forj=t:MB(i,j)=B(i,j)-l*B(t,j);endend进行三角矩阵下的解函数functionX=jie(X,B,N,M)7fori=1:N-1s=B(N-i,M);forj=N-i+1:Ns=s-B(N-i,j)*X(j);endX(N-i)=s/B(N-i,N-i);end执行主程序:N=input('请输入线性方程组的阶数:N=');M=input('请输入增广矩阵阶数:M=');b=zeros(1,N);A=zeros(N,N);A=input('请输入系
本文标题:东南大学数值分析上机作业汇总
链接地址:https://www.777doc.com/doc-7141048 .html