计算方法与实习上机题答案

合集下载

(完整版)数值计算方法上机实习题答案

(完整版)数值计算方法上机实习题答案

(完整版)数值计算⽅法上机实习题答案1.设?+=105dx xx I nn ,(1)由递推公式nI I n n 151+-=-,从0I 的⼏个近似值出发,计算20I ;解:易得:0I =ln6-ln5=0.1823, 程序为:I=0.182; for n=1:20I=(-5)*I+1/n; end I输出结果为:20I = -3.0666e+010 (2)粗糙估计20I ,⽤nI I n n 515111+-=--,计算0I ;因为 0095.056 0079.01020201020≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2120=+=I 程序为:I=0.0087; for n=1:20I=(-1/5)*I+1/(5*n); end I0I = 0.0083(3)分析结果的可靠性及产⽣此现象的原因(重点分析原因)。

⾸先分析两种递推式的误差;设第⼀递推式中开始时的误差为000I I E '-=,递推过程的舍⼊误差不计。

并记nn n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。

因为=20E 20020)5(I E >>-,所此递推式不可靠。

⽽在第⼆种递推式中n n E E E )51(5110-==-=Λ,误差在缩⼩,所以此递推式是可靠的。

出现以上运⾏结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。

2.求⽅程0210=-+x e x的近似根,要求41105-+?<-k k x x ,并⽐较计算量。

(1)在[0,1]上⽤⼆分法;程序:a=0;b=1.0;while abs(b-a)>5*1e-4 c=(b+a)/2;if exp(c)+10*c-2>0 b=c; else a=c; end end c结果:c =0.0903(2)取初值00=x ,并⽤迭代1021x k e x -=+;程序:x=0; a=1;while abs(x-a)>5*1e-4 a=x;x=(2-exp(x))/10; end x结果:x =0.0905(3)加速迭代的结果;程序:x=0; a=0;b=1;while abs(b-a)>5*1e-4 a=x;y=exp(x)+10*x-2; z=exp(y)+10*y-2;x=x-(y-x)^2/(z-2*y+x); b=x; end x结果:x =0.0995(4)取初值00=x ,并⽤⽜顿迭代法;程序:x=0; a=0;b=1;while abs(b-a)>5*1e-4 a=x;x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x; end x结果: x =0.0905(5)分析绝对误差。

计算机基础上机实践习题及答案

计算机基础上机实践习题及答案

基础上机实践习题及答案计算机基础一.判断题1. ( T )网络适配器是将计算机与网络连接起来的器件。

2. ( F )个人计算机属于大型计算机。

3. ( F )硬盘装在机箱内面,属于内存储器。

4. ( F )计算机掉电后,外存中的信息会丢失。

5. ( F )计算机越大,功能便越强。

6. ( T)操作系统的5项功能是中央处理器控制和管理、存储器控制和管理、设备控制和管理、文件控制和管理、作业控制和管理。

7. ( F)关机时关闭显示器即可。

8. (F)液晶显示器的色彩表现力比CRT显示器好。

9. ( F)世界上第一台计算机主要应用于科学研究。

10.( F)计算机内部采用十进制数表示各种数据。

11.( F)当计算机断电以后,存储在RAM中的一小部分数据仍然存在。

12.( F )两个显示器屏幕尺寸相同,则分辨率也一样。

13.( T )一台32位计算机的字长是32位,但这台计算机中一个字节仍是8位。

14.( F )软盘与光盘的区别在于软盘移动方便,光盘移动不方便。

15.(T)操作系统对硬盘的管理属于“存储管理”功能。

16.(T)二进制数101110-01011=100011。

17.(T )标准ASCII码共有256个。

18.( F)计算机只能处理文字、字符和数值信息。

19.( F)造成微机不能正常工作的原因只可能是硬件故障。

20.(T)键盘上的CTRL键是起控制作用的, 它必须与其它键同时按下才起作用。

21.( F)同一目录下可以存放两个内容不同但文件名相同的文件。

22.(T)3.5英寸软盘的写保护口滑块推下, 露出空孔时, 磁盘便处于写保护状态, 即只读不写。

23.(T)在一般情况下,键盘上两个回车键的作用是一样的。

24.(T)决定显示卡档次和主要性能的部件是显示控制芯片。

25.(F)防止系统软盘感染病毒比较好的方法是不要把软盘和有病毒盘放在一起。

26.(T)计算机病毒是一种程序。

27.(T )计算机病毒不会感染处于写保护状态的软盘。

西安电子科技大学出版社计算方法上机答案

西安电子科技大学出版社计算方法上机答案

西安电子科技大学出版社《计算方法》任传祥等编著第九章计算方法上机参考答案实验一,算法一#include <stdio.h>#include <math.h>double I0=log(6)/log(5),I1;int n=1;main (){while(1){I1=1.0/(n)-I0*5.0;printf("%d %lf\n", n,I1);if(n>=20)break;elseI0=I1;n++;}}实验一,算法二#include <stdio.h>#include <math.h>double I0=(1/105.0+1/126.0)/2,I1;int n=20;main (){printf("%d %lf\n", n,I0);while(1){I1=1.0/(5.0*n)-I0/5.0;printf("%d %lf\n", n-1,I1);if(n<2)break;elseI0=I1;n--;}}实验二,二分法#include <stdio.h>#include <math.h>#define esp 1e-3double f(double x);main (){double a=1,b=2,x;while(fabs(b-a)>esp){x=(a+b)/2;printf("x=%lf\n",x);if(f(x)==0)break;elseif(f(x)*f(a)<0)b=x;elsea=x;}}double f(double x){return pow(x,3)-x-1;}实验二,牛顿迭代法#include<stdio.h>#include<math.h>double f(double x);double f1(double x);#define esp 1e-3void main(){double x0 = 1.5, x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);x0 = x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);while (fabs(x1 - x0)>esp){x0 = x1;x1 = x0 - f(x0) / f1(x0);printf("x=%lf\n", x1);} }double f(double x){return pow(x, 3) - x - 1;} double f1(double x){return 3 * x*x - 1;}弦割法#include<stdio.h>#include<math.h>double f(double x);#define esp 1e-3void main(){double x0 = 1.5, x1=2.0,x2;do{ x2=x1 - (x1-x0)*f(x1) /(f(x1)-f(x0));x0=x1;x1=x2;printf("x=%lf\n", x1);}while (fabs(x1 - x0)>esp);{printf("x=%lf\n", x1);}}double f(double x){return pow(x, 3) - x - 1;}实验3#include <stdio.h>/*列主元高斯消去法*/#include <math.h>float x[3],temp,max;float A[3][4]={10,-2,-1,3,-2,10,-1,15,-1,-2,5,10},c[3][4]={10,-2,-1,3,-2,10,-1,15,-1,-2,5,10}; int n=3,i,k,j,m;void main(){for(i=0;i<n;i++){max=A[i][i];k=i;for(j=j+1;j<n;j++){{max=fabs(A[j][i]);k=j;}}if(k!=i){for(j=i+1;j<=n;j++){temp=A[i][j];A[i][j]=A[k][j];A[k][j]=temp;}}for(j=i+1;j<n;j++)for(m=i+1;m<=n;m++){c[j][m]=c[j][m]+(-c[j][i]/c[i][i])*c[i][m];}}for(i=n-1;i>=0;i--){temp=0.0;for(j=n-1;j>=i+1;j--)temp=temp+c[i][j]*x[j];x[i]=(c[i][n]-temp)/c[i][i];}printf("x[1]=%f\nx[2]=%f\nx[3]=%f\n",x[0],x[1],x[2]);实验四,拉格朗日插值#include<stdio.h>int n=5,i,j;double l,L=0,X=0.5;main(){double x[5]={0.4,0.55,0.65,0.8,0.9};doubley[5]={0.41075,0.57815,0.69675,0.88811,1.02652}; for(i=0;i<n;i++){l=y[i];for(j=0;j<n;j++){if(j!=i)l=l*(X-x[j])/(x[i]-x[j]); } L=L+l;}printf("%lf\n",L);return 0;} X=0.5 X=0.7 X=0.85牛顿插值法#include<stdio.h>#include<math.h>main(){double x[5]={0.4,0.55,0.65,0.8,0.9};doubley[5]={0.41075,0.57815,0.69675,0.88811,1.02652};int n=5,i,j;double z;printf("input z\n");scanf("%lf",&z);double a[5][5];for(i=0;i<5;i++)a[i][0]=y[i];for(i=1;i<5;i++)for(j=i;j<5;j++)a[j][i]=(a[j][i-1]-a[j-1][i-1])/(x[j]-x[j-i]);double N=a[0][0],temp=1.0;for(i=1;i<n;i++){temp=temp*(z-x[i-1]);N=N+a[i][i]*temp;}printf("N=%lf\n",N);return 0;}实验五曲线拟合#include <stdio.h>#include <math.h>float x[5]={1,2,3,4,5};float y[5]={7,11,17,27,40};float A[2][3],c[2][3];float z[2],temp,max;int i,j,k,m;int n=2;void main(){for(i=0;i<5;i++){c[0][0]=A[0][0]+=1;c[0][1]=A[0][1]+=x[i];c[0][2]=A[0][2]+=y[i];c[1][0]=A[1][0]+=x[i];c[1][1]=A[1][1]+=x[i]*x[i];c[1][2]=A[1][2]+=x[i]*y[i];}/* for(i=0;i<2;i++){printf(" %lf %lf %lf\n",A[i][0],A[i][1],A[i ][2]);}*/for(i=0;i<n;i++){max=A[i][i];k=i;for(j=j+1;j<n;j++){if(fabs(A[j][i])>max){max=fabs(A[j][i]);k=j;}} if(k!=i){for(j=i+1;j<=n;j++){temp=A[i][j];A[i][j]=A[k][j];A[k][j]=temp;}}for(j=i+1;j<n;j++)for(m=i+1;m<=n;m++){c[j][m]=c[j][m]+(-c[j][i]/c[i][i])*c[i][m];}}for(i=n-1;i>=0;i--){temp=0.0;for(j=n-1;j>=i+1;j--)temp=temp+c[i][j]*z[j];z[i]=(c[i][n]-temp)/c[i][i];}printf("a=%f\nxb=%f\n",z[0],z[1]); }实验六数值积分/*梯形*/#include<stdio.h>#include<math.h> double f(double x); main(){double x[10],y[10];double h,b=1,a=0,I;int n,i;printf("n\n");scanf("%d",&n);h=(b-a)/n;for(i=0;i<=n;i++){x[i]=a+(i*h);y[i]=f(x[i]);}I=f(a)+f(b);for(i=1;i<=n-1;i++){I=I+2*y[i];}I=(h/2)*I;printf("%lf",I);}double f(double x){double f;f=1.0/(1.0+(x*x));return(f);}/*辛普森*/#include<stdio.h>#include<math.h>double f(double x);main(){double x[30],y[30];double h,b=1,a=0,I;int n,i;printf("n\n");scanf("%d",&n);//点乘2扩展h=(b-a)/n;x[10]=1;y[10]=f(x[10]);for(i=0;i<n;i++){x[2*i]=a+(i*h);y[2*i]=f(x[2*i]);x[2*i+1]=a+(i+(1.0/2.0))*h;y[(2*i)+1]=f(x[(2*i)+1]);}I=f(a)+f(b);for(i=0;i<n;i++){I=I+4*y[(2*i)+1];}for(i=1;i<n;i++){I=I+2*y[2*i];}I=(h/6)*I;printf("%lf\n",I);}double f(double x){double f;f=1.0/(1.0+(x*x));return(f);}/*梯形*//*辛普森*/。

东南大学计算方法与实习上机实验一

东南大学计算方法与实习上机实验一

东南大学计算方法与实习实验报告学院:电子科学与工程学院学号:06A*****姓名:***指导老师:***实习题14、设S N=Σ(1)编制按从大到小的顺序计算S N的程序;(2)编制按从小到大的顺序计算S N的程序;(3)按两种顺序分别计算S1000,S10000,S30000,并指出有效位数。

解析:从大到小时,将S N分解成S N-1=S N-,在计算时根据想要得到的值取合适的最大的值作为首项;同理从小到大时,将S N=S N-1+ ,则取S2=1/3。

则所得式子即为该算法的通项公式。

(1)从大到小算法的C++程序如下:/*从大到小的算法*/#include<iostream>#include<iomanip>#include<cmath>using namespace std;const int max=34000; //根据第(3)问的问题,我选择了最大数为34000作为初值void main(){int num;char jus;double cor,sub;A: cout<<"请输入你想计算的值"<<'\t';cin>>num;double smax=1.0/2.0*(3.0/2.0-1.0/max-1.0/(max+1)),temps;double S[max];// cout<<"s["<<max<<"]="<<setprecision(20)<<smax<<'\n';for(int n=max;n>num;){temps=smax;S[n]=temps;n--;smax=smax-1.0/((n+1)*(n+1)-1.0);}cor=1.0/2.0*(3.0/2.0-1.0/num-1.0/(num+1.0)); //利用已知精确值公式计算精确值sub=fabs(cor-smax); //double型取误差的绝对值cout<<"用递推公式算出来的s["<<n<<"]="<<setprecision(20)<<smax<<'\n';cout<<"实际精确值为"<<setprecision(20)<<cor<<'\n';cout<<"则误差为"<<setprecision(20)<<sub<<'\n';cout<<"是否继续计算S[N],是请输入Y,否则输入N!"<<endl;cin>>jus;if ((int)jus==89||(int)jus==121) goto A;}(2)从小到大算法的C++程序如下:/*从小到大的算法*/#include<iostream>#include<iomanip>#include<cmath>using namespace std;void main(){int max;A: cout<<"请输入你想计算的数,注意不要小于2"<<'\t';cin>>max;double s2=1.0/3.0,temps,cor,sub;char jus;double S[100000];for(int j=2;j<max;){temps=s2;S[j]=temps;j++;s2+=1.0/(j*j-1.0);}cor=1.0/2.0*(3.0/2.0-1.0/j-1.0/(j+1.0)); //利用已知精确值公式计算精确值sub=fabs(cor-s2); //double型取误差的绝对值cout<<"用递推公式算出来的s["<<j<<"]="<<setprecision(20)<<s2<<'\n';cout<<"实际精确值为"<<setprecision(20)<<cor<<'\n';cout<<"则误差为"<<setprecision(20)<<sub<<'\n';cout<<"是否继续计算S[N],是请输入Y,否则输入N!"<<endl;cin>>jus;if ((int)jus==89||(int)jus==121) goto A;}(3)(注:因为程序中setprecision(20)表示输出数值小数位数20,则程序运行时所得到的有效数字在17位左右)ii.选择从小到大的顺序计算S1000、S10000、S30000的值需要计算的项S1000S10000S30000计算值0.74900049950049996 0.74966672220370571 0.74996666722220728实际精确值0.74900049950049952 0.74990000499950005 0.74996666722220373误差 4.4408920985006262*10-16 5.6621374255882984*10-15 3.5527136788005009*10-15有效数字17 17 17附上部分程序运行图:iii.实验分析通过C++程序进行计算验证采用从大到小或者从小到大的递推公式算法得到的数值基本稳定且误差不大。

计算方法与实习 第四版 (孙志忠 著) 东南大学出版社 课后答案

计算方法与实习 第四版 (孙志忠 著) 东南大学出版社 课后答案

2
ww
w.
kh
da
w.
co
∗ − y | → ∞, 计算过程不稳定。 注 :此题中,|yn n
m
× 10−3 .
w.
n = 1, 2, · · ·
co m
e2 e2 r r = . 1 + er 1 − er
w.
课后答案网
aw . kh d
∗ − y | = 510 e ≤ n = 10时,|yn n 0
√ 计算到y100 , 若取 783 ≈ 27.982 (5位有效数字),试问计算到y100 将有多大误差? √ 答 :设x∗ = 783, x = 27.982, x∗ = x + e.
−2 ∗ = y∗ yn n−1 − 10 (x + e), yn = yn−1 − 10−2 x,
1 √ 783, 100
概率与数理统计 第二, C语言程序设计教程 第 西方经济学(微观部分) C语言程序设计教程 第 复变函数全解及导学[西 三版 (浙江大学 三版 (谭浩强 张 (高鸿业 著) 中 二版 (谭浩强 张 安交大 第四版]
社区服务
社区热点
进入社区
/
2009-10-15
ww
er − er = er −
e2 e e 1 r = . = e − = e − r r x∗ e+x 1 + er 1 + e1 r ·········
7. 设y0 = 28, 按递推公式
案 答
yn = yn−1 −
网 课 后
1 2
6. 机器数–略。
w. kh da
∗ −y |=e≤ n = 100时,|yn n
课后答案网

上机4参考解答

上机4参考解答

上机4参考答案三、1.⑴f[0]= 0 ;f[i]= 1 ;for(k= 2 ;k< N ;k++){f[k]=f[k-1]+f[k-2];}(2)程序输出的结果是:0 1 1 23 5 8 1321 34 55 89144 233 377 610987 1597 2584 41812.(1)a[i][p]:表示每行中绝对值最小的数i:表示该数所在的行p:表示该数所在的列(2)程序运行的结果是:3 (0,2)2 (1,1)-1 (2,3)3. for(i=0;i<5;i++){for( j=0;j<i;j++ ) /*输出每行前面的空格*/ printf ("%c",space);for( j=0;j<5;j++ ) /*输出每行的星号*/printf ("%c ",' *;printf( n”“);}4./*(1)按字符逐个输入和输出*/#i nclude <stdio.h>int main(){char str[6];int i;for(i=0;i<5;i++)scanf ("%c",&str[i]);for (i=0;i<5;i++)printf ("%c",str[i]);printf( n ”“);return 0;}/*(2)按字符串输入和输出*/#i nclude <stdio.h>int main(){char str[6];gets(str);puts(str);return 0;}for(i=0;i<5;i++) /*与初始化中的5个人进行比较*/ if (strcmp( name,classStu[i]) ==0)flag=1;if ( flag==1 )printf("%s 是这个班的。

\n",name);elseprintf("%s 不是这个班的。

计算方法第二版课后练习题含答案

计算方法第二版课后练习题含答案

计算方法第二版课后练习题含答案前言本文将为大家提供计算方法第二版课后练习题的答案,旨在帮助读者更好地学习和掌握计算方法的知识。

本文全部内容均为作者整理,尽可能保证每一题的答案正确性。

读者可以借助本文的答案,检验自己的练习成果,加强对计算方法知识的理解和掌握程度。

同时,读者也应该注意切勿直接复制答案,本文的答案仅供参考,希望读者能够通过自己的思考和探索,获得更深层次的学习感悟。

第一章引论1.1 计算方法的基本概念和思想练习题 1写出计算方法的三要素,并分别简要解释。

答案计算方法的三要素为:模型、算法、误差分析。

•模型:计算方法所涉及的实际问题所对应的数学模型,是解决问题的基础;•算法:根据模型,构造相应的计算程序,即算法;•误差分析:计算结果与实际应用中所需的精度之间的差异,称为误差。

误差分析是对计算结果质量的保障。

1.2 算法的误差练习题 2写出二分法算法,并解释其误差。

答案算法:function binarySearch(a, target) {let low = 0;let high = a.length - 1;while (low <= high) {let midIndex = Math.floor((low + high) / 2);let midValue = a[midIndex];if (midValue === target) {return midIndex;} else if (midValue < target) {low = midIndex + 1;} else {high = midIndex - 1;}}return -1;}误差:二分法算法的误差上界为O(2−k),其中k为迭代次数。

在二分法被成功应用时,k取决于与目标值x的距离,即 $k=\\log _{2}(\\frac{b-a}{\\epsilon})$,其中[a,b]是区间,$\\epsilon$ 是目标值的精度。

计算方法B上机题目

计算方法B上机题目

2014年《计算方法B》上机题目一.计算机语言要求上机实习使用语言原则上不限,可以使用C、C++、FORTRAN、VC/VB,C#、Matlab、PHP、JavaScript等语言。

二.实习报告内容题目完成后,必须交一份上机报告。

上机报告中应对每道题目包括:(1)上机题目内容;(2)详细说明实现的思想、算法依据、算法实现的结构;(3)详细完整的源程序,并附相关的注释说明;(4)给出必要的计算结果,并对结果进行分析;对上机中出现的问题进行分析总结;三.实习报告要求1.提供一份完整的上机报告的电子文档;然后再提供一份纸质的上机报告。

2.提供上机的所有源程序、输入数据、输出数据,以及可以运行的文件。

如果需要的话,请附上运行程序所需要的软件包环境。

3.上机报告严禁抄袭,如发现有抄袭现象,所有涉及抄袭的上机报告将被以作弊处理,并按零分处理,不再另行通知。

4.上机作业电子版发送到邮箱:xjtujsff@,上机作业纸面作业请送到:理科楼338。

上机实习题目1. 对以下和式计算:0142118184858616nn S n n n n ∞=⎛⎫=--- ⎪++++⎝⎭∑,要求: (1)若只需保留11个有效数字,该如何进行计算; (2)若要保留30个有效数字,则又将如何进行计算;2.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。

已探测(1)(2)预测所需光缆长度的近似值,并作出铺设河底光缆的曲线图;3.假定某天的气温变化记录如下表所示,试用数据拟合的方法找出这4.设计算法,求出非线性方程52645200x x -+=的所有根,并使误差不超过410-。

5.编写程序实现大规模方程组的列主元高斯消去法程序,并对所附的方程组进行求解。

针对本专业中所碰到的实际问题,提炼一个使用方程组进行求解的例子,并对求解过程进行分析、求解。

计算方法上机实习题

计算方法上机实习题

数值计算方法上机实习题1. 设⎰+=105dx xx I nn , (1) 由递推公式nI I n n 151+-=-,从0=0.1822I , 0=0.1823I 出发,计算20I ; (2) 20=0I ,20=10000I , 用nI I n n 51511+-=-,计算0I ;(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。

解:(1)程序如下: clear all clc I=0.1822; %题中的已知数据 for n=1:20; I=(-5)*I+1/n; %由递推公式所得 end fprintf('I20=%f\n',I) M=0.1823; %与I 的计算结果形成对比for i=1:20; M=(-5)*M+1/i; %由递推公式所得 end fprintf('M20=%f\n',M) 输出结果为: I20=-11592559237.912731 M20=-2055816073.851284 (2)程序如下: clear all clc I=0; %赋予I20的初始值 for n=0:19; I=(-1/5)*I+1/(5*(20-n)); %有递推公式得 end fprintf('I0=%f\n',I)M=10000; for i=0:19; M=(-1/5)*M+1/(5*(20-i));%有递推公式得 end fprintf('M0=%f\n',M) 输出结果为: I0=0.182322 M0=0.182322(3)由输出结果可看出第一种算法为不稳定算法,第二中算法为稳定算法。

由于误差*000***21111120115(5)5()555nn n n n n n n n n e I I e I I I I I I e e e n n------=-=-=-+--+=-===第一种算法为正向迭代算法,每计算一步误差增长5倍,虽然所给的初始值很接近,随着n 的增大,误差也越来越大。

计算方法上机答案

计算方法上机答案

上海电力学院数值分析上机实验报告题目:数值分析上机实验报告学生姓名:11111111111学号:111111*********专业:11112013年12月30日数值计算方法上机实习题1. 设⎰+=105dx xx I nn , (1) 由递推公式n I I n n 151+-=-,从0I 的几个近似值出发,计算20I ; (2) 粗糙估计20I ,用nI I n n 51511+-=-,计算0I ;(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。

(1) 解答:n=0,0.1823)05ln()15ln()5(51515101010=+-+=++=+=+=⎰⎰⎰x d xdx x dx x x I nn这里可以用for 循环,while 循环,根据个人喜好与习惯:for 循环程序: While 循环程序: I=0.1823; I=0.1823; for n=1:20 i=1;I=(-5)*I+1/n; while i<21 End I=(-5)*I+1/i; I i=i+1; fprintf('I20=%f',I) end I = -2.0558e+009 >> II20=-2055816073.851284>> I = -2.0558e+009 (2) 粗略估计I 20: Mathcad 计算结果: for 循环程序: While 循环程序: >> I=0.007998; I=0.007998; >> for n=1:20 n=1;I=(-0.2)*I+1/(5*n); while n<21End I=(-0.2)*I+1/(5*n); >> I n=n+1; I =0.0083 end >> II =0.0083(3) 算法误差分析:计算在递推过程中传递截断误差和舍入误差 第一种算法:(从1——>20)*000e I I=-***21111120115(5)5()555n n n n n n n n n n e I I I I I I e e e n n------=-=-+--+=-===1x x 205x +⎛⎜⎜⎜⎠d 7.998103-⨯=误差放大了5n 倍,算法稳定性很不好; 第二种算法:(从20——>1)*n n ne I I =-***111111111()()555555n n n n n n nn e I I I I I I e n n ---=-=-+--+=-=0111...()55nne e e ===误差在逐步缩小,算法趋近稳定,收敛。

计算方法上机作业

计算方法上机作业

计算方法上机报告姓名:学号:班级:上课班级:说明:本次上机实验使用的编程语言是Matlab 语言,编译环境为MATLAB 7。

11。

0,运行平台为Windows 7。

1. 对以下和式计算:∑∞⎪⎭⎫ ⎝⎛+-+-+-+=0681581482184161n n n n S n ,要求:① 若只需保留11个有效数字,该如何进行计算;② 若要保留30个有效数字,则又将如何进行计算;(1) 算法思想1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为:142111416818485861681n n n a n n n n n ε⎛⎫=---<< ⎪+++++⎝⎭; 2、为了保证计算结果的准确性,写程序时,从后向前计算;3、使用Matlab 时,可以使用以下函数控制位数:digits (位数)或vpa(变量,精度为数)(2)算法结构1。

;0=s⎪⎭⎫ ⎝⎛+-+-+-+=681581482184161n n n n t n ; 2。

for 0,1,2,,n i =⋅⋅⋅if 10m t -≤end ;3。

for ,1,2,,0n i i i =--⋅⋅⋅;s s t =+(3)Matlab源程序clear;%清除工作空间变量clc; %清除命令窗口命令m=input(’请输入有效数字的位数m=’); %输入有效数字的位数s=0;for n=0:50t=(1/16^n)*(4/(8*n+1)—2/(8*n+4)—1/(8*n+5)—1/(8*n+6));if t〈=10^(—m) %判断通项与精度的关系break;endend;fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值for i=n—1:-1:0t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)—1/(8*i+5)—1/(8*i+6));s=s+t; %求和运算ends=vpa(s,m)%控制s的精度(4)结果与分析当保留11位有效数字时,需要将n值加到n=7,s =3.1415926536;当保留30位有效数字时,需要将n值加到n=22,s =3。

计算方法上机作业

计算方法上机作业

计算方法上机作业作为一位学生,我经常需要完成各种数学计算。

无论是简单的加减乘除还是复杂的代数方程和数列求和,计算是我非常重要的一项能力。

然而,为了提高我的计算能力,我仍然需要不断的练习和实践。

下面是我在计算方法上机作业中遇到的一些题目,并附上了详细的解答过程。

1.求解方程组:{2x-3y=5{3x+4y=7解答:首先,我们可以通过消元法或代入法求解这个方程组。

这里我们选择代入法。

由第一个方程得:2x=3y+5将上式代入第二个方程中得:3(3y+5)+4y=7化简得:9y+15+4y=7继续化简:13y=-8得到:y=-8/13将y的值代入第一个方程得:2x-3(-8/13)=5化简得:2x=5+24/13继续化简:2x=65/13-24/13得到:2x=41/13最后,得到:x=(41/13)/2=41/26所以,方程组的解为:x=41/26,y=-8/132.求解不等式:2x+3>5x-1解答:首先,我们将不等式移项得:2>5x-2x-1继续化简:2>3x-1再次移项:3>3x继续化简:1>x所以,不等式的解集为:x<13.求函数f(x)=2x^2+3x-1的极值点。

解答:首先,我们利用求导的方法求解极值点。

对函数f(x)求导得:f'(x)=4x+3然后,令f'(x)=0化简得:4x=-3最后,得到:x=-3/4将极值点x=-3/4代入原函数得:f(-3/4)=2(-3/4)^2+3(-3/4)-1化简得:f(-3/4)=9/8-9/4-1最后,得到:f(-3/4)=-11/8所以,函数f(x)=2x^2+3x-1的极值点为x=-3/4,对应的函数值为f(-3/4)=-11/8通过这些题目的解答,我不仅巩固了计算方法的知识,也提高了我的计算能力和解题技巧。

我会继续努力学习和练习,以便更好地掌握计算方法。

数值计算方法上机实习题答案.doc

数值计算方法上机实习题答案.doc

1.设I n 1 x ndx ,0 5 x( 1)由递推公式 I n 5I n 11,从 I 0的几个近似值出发,计算I 20;n解:易得: I 0 ln6-ln5=0.1823, 程序为:I=0.182;for n=1:20I=(-5)*I+1/n;endI输出结果为: I 20= -3.0666e+010( 2)粗糙估计 I 20,用 I n 1 1I n 1 1 ,计算 I 0;5 5n0.0079 1 x 20 1 x 200.0095因为dx I 20dx 6 5所以取 I 20 1(0.0079 0.0095) 0.0087 2程序为: I=0.0087;for n=1:20I=(-1/5)*I+1/(5*n);endII 0= 0.0083( 3)分析结果的可靠性及产生此现象的原因(重点分析原因 )。

首先分析两种递推式的误差;设第一递推式中开始时的误差为E0 I 0 I 0,递推过程的舍入误差不计。

并记 E n I n I n,则有 E n 5E n 1 ( 5) n E0。

因为 E20( 5) 20 E0 I 20,所此递推式不可靠。

而在第二种递推式中E0 1E1 (1)n E n,误差在缩小,5 5所以此递推式是可靠的。

出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。

2.求方程e x10x 2 0 的近似根,要求x k 1x k 5 10 4,并比较计算量。

(1)在 [0, 1]上用二分法;程序: a=0;b=1.0;while abs(b-a)>5*1e-4c=(b+a)/2;if exp(c)+10*c-2>0b=c;else a=c;endendc结果: c =0.0903( 2)取初值x0 0,并用迭代 x k 1 2 e x ;10程序: x=0;a=1;while abs(x-a)>5*1e-4a=x;x=(2-exp(x))/10;endx结果: x =0.0905(3)加速迭代的结果;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;y=exp(x)+10*x-2;z=exp(y)+10*y-2;x=x-(y-x)^2/(z-2*y+x);b=x;endx结果: x =0.0995( 4)取初值x00 ,并用牛顿迭代法;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x;end x 结果: x =0.0905( 5) 分析绝对误差。

数值计算方法上机实习题NEW

数值计算方法上机实习题NEW

数值计算方法上机实习题1. 设,(1) 由递推公式,从 , 出发,计算 ; 程序如下:function I=myhs(I0,n) if n>=1I=myhs(I0,n-1)*(-5)+1/n; elseif n==0 I=I0; end命令行窗口输入: I0=0.1822;I1=myhs(I0,20); I0=0.1823;I2=myhs(I0,20);运行结果:当I0=0.1822时,I20=-1.1593e+10。

当I0=0.1823时,I20= -2.0558e+9。

(2) ,20=10000I , 用,计算0I ; 程序如下:function I=myhs2(I20,n) if (n<20)I=myhs2(I20,n+1)*(-1)/5+1/(5*(n+1)); elseif n==20 I=I20; end命令行窗口输入:I20=0;I1=myhs2(I20,20); I20=10000;I2=myhs2(I20,20);运行结果:当I 20=0时,I 0=0.182321556793955。

当I 20=10000时,I 0= 0.182321556898812。

(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。

根据上式,假设I n 的真值为I*,误差为e n ,即e=I*-I n 。

综合递推式,有e n =-5*e n-1,这意味着哪怕开始只有一点点误差,只要n 足够大,按照这种计算一步误差增长5倍的方式,所得的结果总是不可信的,因此整个算法是不稳定的。

根据上式,假设I n 的真值为I*,误差为e n ,即e=I*-I n 。

综合递推式,有e n-1. =(-1/5)*e n ,按照这种计算误差会以每步缩小到1/5的方式进行,根据(2)得到的结果而言,该算法是相对稳定的。

2. 求方程0210=-+x e x 的近似根,要求41105-+⨯<-k k x x ,并比较计算量。

计算方法B上机题目

计算方法B上机题目

2016年《计算方法B》上机题目一.计算机语言要求使用语言不做限制,可以使用C、C++、FORTRAN、VC、VB、C#、Matlab、PHP、JavaScript等语言。

二.实习报告内容上机题目完成后,必须交一份上机报告。

上机报告中应对每道题目包括:(1)上机题目内容;(2)详细说明实现的思想、算法依据、算法实现的结构;(3)详细完整的源程序,并附相关的注释说明;(4)给出必要的计算结果(若数据量大,则只需列出主要的数据内容),并对结果进行分析;(5)对上机中出现的问题进行分析总结;三.实习报告要求1.提供一份完整的上机报告的电子文档;然后再提供一份与电子文档对应的纸质上机报告。

2.电子文档中提供上机过程中的所有源程序、输出数据,以及可以运行的文件。

如果程序的运行环境特殊,请附上运行程序所需要的软件环境。

3.上机报告严禁抄袭,如发现有抄袭现象,所有涉及抄袭的上机报告将被以作弊处理,并按零分处理,不再另行通知。

4.上机报告电子版一、二、三班发送到邮箱:xjtujsff@,上机作业纸面作业请送到:理科楼338。

上机实习题目1.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。

在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。

已探测(1)(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;2.假定某天的气温变化记录如下表所示,试用数据拟合的方法找出这3.线性方程组求解。

(1)编写程序实现大规模方程组的高斯消去法程序,并对所附的方程组进行求解。

所附方程组的类型为对角占优的带状方程组。

(2)针对本专业中所碰到的实际问题,提炼一个使用方程组进行求解的例子,并对求解过程进行分析、求解。

附:数据文件格式说明1.数据文件的文件名后缀为.dat,形式为:文件名.dat;2.数据文件中的数据均为二进制记录结构,因此必须使用二进制方式进行读取;3.数据文件的结构,分为以下四个部分:(1)文件标示部分,该部分用于存放数据文件的描述信息结构如下(用C语言格式进行描述):typedef struct FileInfo {long int id; // 数据文件标示long int ver; // 数据文件版本号long int id1; // 备用标志} FILEINFO;其中:①id:为该数据文件的标识,值为0xF1E1D1A0即为:十六进制的F1E1D1A0②③id1:为备用标志字段,暂时未用;(2)矩阵描述部分:此部分中包括矩阵的阶数和上下带宽,如果是稀疏矩阵,则上下带宽值为0。

数值计算方法上机实习题考证

数值计算方法上机实习题考证

---------------------------------------------------此文档包含我们计算方法的经典算法包含(数值计算方法上机实习题)1. 设⎰+=105dx x x I nn , (1) 由递推公式nI I n n 151+-=-,从0I 的几个近似值出发,计算20I ; (2) 粗糙估计20I ,用n I I n n 51511+-=-,计算0I ; (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。

(1) 解答:n=0,0.1823)05ln()15ln()5(51515101010=+-+=++=+=+=⎰⎰⎰x d x dx x dx x x I nn 这里可以用for 循环,while 循环,根据个人喜好与习惯:for 循环程序: While 循环程序:I=0.1823; I=0.1823;for n=1:20 i=1;I=(-5)*I+1/n; while i<21End I=(-5)*I+1/i;I i=i+1;fprintf('I20=%f',I) endI = -2.0558e+009 >> II20=-2055816073.851284>> I = -2.0558e+009(2) 粗略估计I 20: Mathcad 计算结果: for 循环程序: While 循环程序: >> I=0.007998; I=0.007998;>> for n=1:20 n=1;I=(-0.2)*I+1/(5*n); while n<21End I=(-0.2)*I+1/(5*n);>> I n=n+1;I =0.0083 end>> II =0.0083(3) 算法误差分析:计算在递推过程中传递截断误差和舍入误差第一种算法:(从1——>20)01x x 205x +⎛⎜⎜⎜⎠d 7.998103-⨯=*000e I I =-***21111120115(5)5()555n n n n n n n n n n e I I I I I I e e e n n------=-=-+--+=-===误差放大了5n 倍,算法稳定性很不好;第二种算法:(从20——>1)*n n ne I I =- ***111111111()()555555n n n n n n n n e I I I I I I e n n ---=-=-+--+=-=0111...()55n n e e e === 误差在逐步缩小,算法趋近稳定,收敛。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档