欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    东南大学数值分析上机练习前三章.docx

    • 资源ID:7458518       资源大小:18.80KB        全文页数:12页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    东南大学数值分析上机练习前三章.docx

    1、东南大学数值分析上机练习前三章数值分析上机练习(以VC+6.0为操作平台)第一章20.(1)程序如下:#include#include#includevoid main() int N; double sum; float sum1=0, f; coutN; for(float i=2;i=N;i+) f=1/(i*i-1); sum1=sum1+f; coutsum1=sum1endl;sum=0.5*(1.51.0/N1.0/(N+1);coutsum=sumendl;20(2)程序如下:#include#include#includevoid main() int N; float su

    2、m2=0, f;double sum; coutN; for(float i=N;i=2;i-) f=1/(i*i-1); sum2=sum2+f; coutsum2=sum2endl;sum=0.5*(1.51.0/N1.0/(N+1);coutsum=sumendl;20.(1)运行结果如下:100sum1=0.740049 sum=0.74005Press any key to continue10000sum1=0.749852sum=0.7499Press any key to continue1000000sum1=0.749999sum=0.749999Press any key

    3、 to continue20.(2)运行结果如下:100sum2=0.74005 sum=0.74005Press any key to continue10000sum2=0.7499sum=0.7499Press any key to continue1000000sum2=0.749999sum=0.749999Press any key to continue结果分析:当n=100时,sum1的6位数字中有5位有效数字,而sum2所有数字都是有效数字。当n=10000时,sum1的6位数字中有4位有效数字,而sum2所有数字都是有效数字。当n=1000000时sum1,sum2有相同位

    4、数的有效数字。由运行结果可知:当精度较低时按从大到小的顺序累加的精度低于按从小到大的顺序累加结果的精度。至于当精度较高时,sum1,sum2会得出相同结果。第二章20.程序如下:#include#include#includevoid main() int count=0; double fl,f2,y; double x,xl,u=1.0; coutxl; couty;for(count=0;fabs(u)=y;count+) x=xl; fl=x*x*x/3-x; f2=x*x-1; xl=x-fl/f2; u=xl-x; if(count10000) cout迭代结果不收敛于0!endl

    5、; break; cout方程的一个根为:xlendl;运行结果如下:请输入x0的初值:100请输入容许误差y的初值:1e-6方程的一个根为:1.73205Press any key to continue请输入x0的初值:0.7745966请输入容许误差y的初值:1e-6方程的一个根为:0Press any key to continue请输入x0的初值:0.7745967请输入容许误差y的初值:1e-6方程的一个根为:-1.73205Press any key to continue请输入x0的初值:-0.7745966请输入容许误差y的初值:1e-6方程的一个根为:0Press any

    6、key to continue请输入x0的初值:-0.7745967请输入容许误差y的初值:1e-6方程的一个根为:1.73205Press any key to continue请输入x0的初值:-100请输入容许误差y的初值:1e-6方程的一个根为:-1.73205Press any key to continue其中尽可能大的=0.7745966是经过多次试算得出的结论,并得出以下结论:当x0-1时,Newton序列收敛于-1.73205;当-1x0-时,Newton序列收敛于-1.73205当-x0时,Newton序列收敛于0;当x01时,Newton序列收敛于1.73205.通过本上

    7、机题,我们可以知道当输入初值x0的不同,迭代结果可能收敛与不同的根。第三章35.程序如下:#include #include #include const int N=9; /方程组系数增广矩阵的行数const int M=10; /方程组系数增广矩阵的列数void main()int b,c,k,i,j;double aNM;double y;cout请输入数组:endl; for (b=0;bN;b+) for (c=0;cabc; cout您输入的数组为:;for (b=0;bN;b+) coutendl;for (c=0;cM;c+) /输出方程组的系数矩阵便于核对数据是否输错cout

    8、setw(5)abc; coutendl;int p,q;double tM;for (k=0;kN;k+)for(q=k+1;qN;q+);if(akkaqk) for (p=k;pM;p+)tp=akp; akp=aqp; aqp=tp; /选出列主元for (i=k+1;iN;i+) y=aik/akk; /实施消去过程,得到上三角系数增广矩阵for (j=k;j=0;f-) s=0;for (g=f+1;gN;g+) /由上三角形的系数增广矩阵求出方程组的解s=s+afg*xg; xf=(afN-s)/aff; cout方程组的解为:endl;for (b=0;bN;b+) /输出方程

    9、组的解 coutsetw(5)xb=xb; coutendl;运行结果如下:见附图36.程序如下:#include#include#define eps 0.5e-5 /迭代误差void main(void)int i,j,l; float w,t; float m9; float sum; float a99=31,-13,0,0,0,-10,0,0,0,-13,35,-9,0,-11,0,0,0,0,0,-9,31,-10,0,0,0,0,0,0,0,-10,79,-30,0,0,0,-9,0,0,0,-30,57,-7,0,-5,0,0,0,0,0,-7,47,-30,0,0,0,0,0

    10、,0,0,-30,41,0,0,0,0,0,0,-5,0,0,27,-2, 0,0,0,-9,0,0,0,-2,29; float b9=-15,27,-23,0,-20,12,-7,7,10; float max(float m9); for(t=1.0;t=99;t+) l=0; float x09=1,1,1,1,1,1,1,1,1; float x19=1,1,1,1,1,1,1,1,1; w=t/50; do for(i=0;i9;i+)x0i=x1i;for(i=0;i9;i+)sum=0;for(j=0;ji;j+) sum=sum+aij*x1j;for(j=i+1;j9;j+

    11、)sum=sum+aij*x0j;x1i=(1-w)*x0i+w*(bi-sum)/aii; /解出九个解 for(i=0;i=eps);if(max(m)=eps)cout迭代次数=ltw=wn;for(i=0;i9;i+)coutx1i=x1it;cout-n;float max(float m9) /求出最大的迭代误差 float k;k=(fabs(m0); for(int i=1;ik) k=fabs(mi); return k;运行结果如下:迭代次数迭代次数迭代次数迭代次数0.0212910.52551.02191.52240.047000.54531.04181.54250.06

    12、4860.56511.06171.56270.083730.58481.08161.58300.103030.60461.10151.60310.122550.62441.12151.62340.142210.64421.14141.64360.161940.66411.16121.66390.181730.68391.18101.68440.201560.70371.20111.70490.221420.72361.22121.72550.241300.74341.24121.74600.261200.76331.26131.76710.281110.78321.28131.78810.30

    13、1030.80301.30141.80970.32960.82291.32151.821210.34900.84281.34151.841570.36850.86271.36161.862280.38800.88261.38171.883980.40750.90251.40181.9015820.42710.92241.42191.9254270.44680.94231.44191.9421780.46640.96221.46201.9613740.48610.98211.48211.9810090.50581.00201.5022从1.92到2.00均出现不合理的迭代次数,迭代次数偏大。不是合理的迭代值。当初值为x=(1,1,1,1,1,1,1,1,1,)T 时,从上表可以看出,最佳松弛因子为=1.18,迭代次数仅为10次,方程的解为: x1= -0.289231,x2= 0.345437,x3= -0.712811, x4= -0.220608,x5= -0.430400,x6= 0.154309,x7= -0.057823,x8= 0.201054,x9= 0.2902


    注意事项

    本文(东南大学数值分析上机练习前三章.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开