欢迎来到天天文库
浏览记录
ID:48972724
大小:2.68 MB
页数:20页
时间:2020-02-26
《西安交大计算方法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.西安交通大学计算方法上机实验班级:(xxx)姓名:(xxx)学号:2111601004教育资料.1.按两种顺序计算y,哪个接近真值?Y=1000+++…+用java语言编写:publicclassAdd{publicstaticvoidmain(String[]args){doubles=0,y=1000;for(doublea=1001.0;a<=2000.0;a++){y+=1.0/a;}for(doublea=2000.0;a>=1001.0;a--){s+=1.0/a;}s=s+1000;S
2、ystem.out.println("正序和"+s);System.out.println("逆序和"+y);}}运行结果:结论:显然假设是double类型的数据时,先算大数的过程吃掉了末尾的小数被进位所埋没,导致了大数吃小数的误差,按从小到大(从右向左)的计算顺序所得的结果与真值相近,而按从大到小(从左到右)的计算顺序所得的结果与真值的误差较大。教育资料.1-18.设(x)=1+x+++…+,计算(-5)和1/(5),哪个接近?解法一:用JAVA语言编写:publicclasssecond{publ
3、icstaticvoidmain(String[]args){doubles1=1,s2=1;doublee=1,sum=1;//e的初值为1,sum用来存放n!inta=1;while(sum4、i);}s1=1.0/s1;System.out.println("1/S24(5)="+s1);System.out.println("S24(-5)="+s2);}publicstaticdoublecimi1(intai){doublexi=1;for(inti=ai;i>=1;i--){xi=xi*(5.0/i);}returnxi;}publicstaticdoublecimi2(intai){doublexi=1;for(inti=ai;i>=1;i--){xi=xi*(-5.0/i);}5、returnxi;}教育资料.}运行结果:解法二:用matlab编程并运行,如下:(1)计算(-5)运行结果如下:(2)计算1/(5)运行结果如下:而的真是结果为0.006737946比较得1/(5)的计算结果与真实值更接近解法三:也可以用C++编写:#include"stdafx.h"教育资料.#include"stdio.h"#include"iostream"usingnamespacestd;intmain(intargc,char*argv[]){intfunc1(int);doublefu6、nc2(int);doubley=0;inti;for(i=1;i<25;i++){intz=func1(i);doublee=func2(i);y+=z/e;}cout<<"----------------------------------------"<7、ntx){inty=1;intk;for(k=0;k8、可将真解表示为G=0.45a--0.1125=[(0.2a–0.0625)b+(0.25a–0.1)c+(0.125-)d]/G=-[(0.1–0.25a)b+(-0.2)c+(0.25–0.5a)d]/G=[(0.125-)b+(0.5a–0.25)c+(a–0.25)d]/G试将a,b,c,d依次取2~6位近似有效数,分别计算,,。解:用matlab编程如下:将a,b,c,d依次取2~6位近似有效数取2位有效近似有效数教育资料.取3位有效近似有效数取
4、i);}s1=1.0/s1;System.out.println("1/S24(5)="+s1);System.out.println("S24(-5)="+s2);}publicstaticdoublecimi1(intai){doublexi=1;for(inti=ai;i>=1;i--){xi=xi*(5.0/i);}returnxi;}publicstaticdoublecimi2(intai){doublexi=1;for(inti=ai;i>=1;i--){xi=xi*(-5.0/i);}
5、returnxi;}教育资料.}运行结果:解法二:用matlab编程并运行,如下:(1)计算(-5)运行结果如下:(2)计算1/(5)运行结果如下:而的真是结果为0.006737946比较得1/(5)的计算结果与真实值更接近解法三:也可以用C++编写:#include"stdafx.h"教育资料.#include"stdio.h"#include"iostream"usingnamespacestd;intmain(intargc,char*argv[]){intfunc1(int);doublefu
6、nc2(int);doubley=0;inti;for(i=1;i<25;i++){intz=func1(i);doublee=func2(i);y+=z/e;}cout<<"----------------------------------------"<7、ntx){inty=1;intk;for(k=0;k8、可将真解表示为G=0.45a--0.1125=[(0.2a–0.0625)b+(0.25a–0.1)c+(0.125-)d]/G=-[(0.1–0.25a)b+(-0.2)c+(0.25–0.5a)d]/G=[(0.125-)b+(0.5a–0.25)c+(a–0.25)d]/G试将a,b,c,d依次取2~6位近似有效数,分别计算,,。解:用matlab编程如下:将a,b,c,d依次取2~6位近似有效数取2位有效近似有效数教育资料.取3位有效近似有效数取
7、ntx){inty=1;intk;for(k=0;k8、可将真解表示为G=0.45a--0.1125=[(0.2a–0.0625)b+(0.25a–0.1)c+(0.125-)d]/G=-[(0.1–0.25a)b+(-0.2)c+(0.25–0.5a)d]/G=[(0.125-)b+(0.5a–0.25)c+(a–0.25)d]/G试将a,b,c,d依次取2~6位近似有效数,分别计算,,。解:用matlab编程如下:将a,b,c,d依次取2~6位近似有效数取2位有效近似有效数教育资料.取3位有效近似有效数取
8、可将真解表示为G=0.45a--0.1125=[(0.2a–0.0625)b+(0.25a–0.1)c+(0.125-)d]/G=-[(0.1–0.25a)b+(-0.2)c+(0.25–0.5a)d]/G=[(0.125-)b+(0.5a–0.25)c+(a–0.25)d]/G试将a,b,c,d依次取2~6位近似有效数,分别计算,,。解:用matlab编程如下:将a,b,c,d依次取2~6位近似有效数取2位有效近似有效数教育资料.取3位有效近似有效数取
此文档下载收益归作者所有