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

(完整版)数值计算⽅法上机实习题答案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)分析绝对误差。
计算方法上机题答案

2.用下列方法求方程e^x+10x-2=0的近似根,要求误差不超过5*10的负4次方,并比较计算量(1)二分法(局部,大图不太看得清,故后面两小题都用局部截图)(2)迭代法(3)牛顿法顺序消元法#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int N=4,i,j,p,q,k; double m;double a[4][5]; double x1,x2,x3,x4; for (i=0;i<N ;i++ )for (j=0;j<N+1; j++ )scanf("%lf",&a[i][j]);for(p=0;p<N-1;p++) {for(k=p+1;k<N;k++){m=a[k][p]/a[p][p];for(q=p;q<N+1;q++)a[k][q]=a[k][q]-m*a[p][q];}}x4=a[3][4]/a[3][3];x3=(a[2][4]-x4*a[2][3])/a[2][2];x2=(a[1][4]-x4*a[1][3]-x3*a[1][2])/a[1][1];x1=(a[0][4]-x4*a[0][3]-x3*a[0][2]-x2*a[0][1])/a[0][0];printf("%f,%f,%f,%f",x1,x2,x3,x4);scanf("%lf",&a[i][j]); (这一步只是为了看到运行的结果)}运行结果列主元消元法function[x,det,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);flag='OK';det=1;x=zeros(n,1);for k=1:n-1 max1=0;for i=k:nif abs(A(i,k))>max1max1=abs(A(i,k));r=i;endendif max1<1e-10flag='failure';return;endif r>kfor j=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;det=-det; endfor i=k+1:nm=A(i,k)/A(k,k);for j=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=b(i)-m*b(k);enddet=det*A(k,k);enddet=det*A(n,n)if abs(A(n,n))<1e-10flag='failure';return;endx(n)=b(n)/A(n,n);for k=n-1:-1:1for j=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);end运行结果:雅可比迭代法function y=jacobi(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>1e-4 x0=y;y=B*x0+f;n=n+1;endyn高斯赛德尔迭代法function y=seidel(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=G*x0+f;n=n+1;endynSOR迭代法function y=sor(a,b,w,x0)D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);lw=(D-w*L)\((1-w)*D+w*U); f=(D-w*L)\b*w;y=lw*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=lw*x0+f;n=n+1;endyn1.分段线性插值:function y=fdxx(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendy(i)= y0(j)*(z-x0(j+1))/(x0(j)-x0(j+1))+y0(j+1)*(z-x0(j))/(x0(j+1)-x0(j));fprintf('y(%d)=%f\nx1=%.3fy1=%.3f\nx2=%.3fy2=%.3f\n\n',i,y(i),x0(j),y0(j),x0(j+1),y0(j+1));endend结果0.39404 0.38007 0.356932.分段二次插值:function y=fdec(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendif j<2j=j+1;elseif (j<n-1)if (abs(x0(j)-z)>abs(x0(j+1)-z))j=j+1;elseif ((abs(x0(j)-z)==abs(x0(j+1)-z))&&(abs(x0(j-1)-z)>abs(x0(j+2)-z)))j=j+1;endendans=0.0;for t=j-1:j+1a=1.0;for k=j-1:j+1if t~=ka=a*(z-x0(k))/(x0(t)-x0(k));endendans=ans+a*y0(t);endy(i)=ans;fprintf('y(%d)=%f\n x1=%.3f y1=%.3f\n x2=%.3f y2=%.3f\n x3=%.3f y3=%.3f\n\n',i,y(i),x0(j-1),y0(j-1),x0(j),y0(j),x0(j+1),y0(j+1));endend结果为0.39447 0.38022 0.357253.拉格朗日全区间插值function y=lglr(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for t=1:mans=0.0;z=x(t);for k=1:np=1.0;for q=1:nif q~=kp=p*(z-x0(q))/(x0(k)-x0(q));endendans=ans+p*y0(k);endy(t)=ans;fprintf('y(%d)=%f\n',t,y(t));endend结果为0.39447 0.38022 0.35722function [p,S,mu] = polyfit(x,y,n)if ~isequal(size(x),size(y))errorendx = x(:);y = y(:);if nargout > 2mu = [mean(x); std(x)];x = (x - mu(1))/mu(2);endV(:,n+1) = ones(length(x),1,class(x));for j = n:-1:1V(:,j) = x.*V(:,j+1);end[Q,R] = qr(V,0);ws = warning;p = R\(Q'*y); warning(ws);if size(R,2) > size(R,1)warning;elseif warnIfLargeConditionNumber(R)if nargout > 2warning;elsewarning;endendif nargout > 1r = y - V*p;S.R = R;S.df = max(0,length(y) - (n+1));S.normr = norm(r);endp = p.';function flag = warnIfLargeConditionNumber(R) if isa(R, 'double')flag = (condest(R) > 1e+10);elseflag = (condest(R) > 1e+05);endx=[1,3,4,5,6,7,8,9,10];y=[10,5,4,2,1,1,2,3,4];p=polyfit(x,y,2);y=poly2sym(p);a=-p(1)/p(2)*0.5;xa=-p(2)/(2*p(1));min=(4*p(1)*p(3)-p(2)^2)/(4*p(1)); yxamin运行截图运行结果function [I] = CombineTraprl(f,a,b,eps)if(nargin ==3)eps=1.0e-4;endn=1;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym( f),findsym(sym(f)),x1));endendI=I2;程序:>> [q]=CombineTraprl('(1-exp(-x))^0.5/x'10^-12,1)结果:q =1.8521欧拉方法function [x,y]=euler(fun,x0,xfinal,y0,n);if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;for i=1:nx(i+1)=x(i)+h;y(i+1)=y(i)+h*feval(fun,x(i),y(i));end程序:[x,y]=euler('doty',0,1,1,10)结果:改进欧拉方法function [x,y]=eulerpro(fun,x0,xfinal,y0,n); if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;x(i+1)=x(i)+h;y1=y(i)+h*feval(fun,x(i),y(i));y2=y(i)+h*feval(fun,x(i+1),y1);y(i+1)=(y1+y2)/2;end程序:>> [x,y]=eulerpro('doty',0,1,1,10)结果:经典RK法function [x,y]=RungKutta4(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2);y(1)=y0;for n=1:length(x)-1k1=feval(dyfun,x(n),y(n));k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1);k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2);k4=feval(dyfun,x(n+1),y(n)+h*k3);y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; end程序:dyfun=inline('(2*x*y^-2)/3');[x,y]=RungKutta4(dyfun,[0,1],1,0.1)标准函数x(1)=0;h=0.1;for i=1:10y(i)=(1+x(i)^2)^(1/3); endxY结果:。
东南大学计算方法与实习上机实验一

东南大学计算方法与实习实验报告学院:电子科学与工程学院学号: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++程序进行计算验证采用从大到小或者从小到大的递推公式算法得到的数值基本稳定且误差不大。
计算方法B上机报告

西安交通大学计算方法B上机报告班级:XXXXXXXX姓名:XXX学号:XXXXXXXX2015/12/13 Sunday目录1题目一 (1)1.数值计算 (1)2.实现思想 (1)3.源程序 (1)4.计算结果 (2)5.分析总结 (2)2题目二 (3)1.数据近似 (3)2.实现思想 (3)3.源程序 (5)4.计算结果 (6)5.分析总结 (7)3题目三 (8)1.数据拟合 (8)2.实现思想 (8)3.源程序 (9)4.计算结果 (12)5.分析总结 (14)4题目四 (15)1.非线性方程求解 (15)2.实现思想 (15)3.源程序 (16)4.计算结果 (17)5.分析总结 (17)5题目五 (18)1.线性方程组求解。
(18)2.文件格式说明 (18)3.实现思想 (19)4.源程序 (20)5.计算结果 (23)6.分析总结 (25)7.实际问题 (25)1 题目一1. 数值计算计算以下和式:0142118184858616nn S n n n n ∞=⎛⎫=--- ⎪++++⎝⎭∑,要求:(1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。
2. 实现思想对于(1)可用迭代的方法进行处理。
通过do-while 循环使和式从0开始计算直到结果满足有效数字即可。
在循环中通过比较本次和上一次结果之差的绝对值与相应有效数字的大小的1/2,即可构成循环中止条件。
对于(2)可用同样的方法进行计算,然而由于所保留的有效数字较大,此时若不对上述算法进行改善的话,由于每一步所得计算结果都是其真实值,此时可能会存在有效数字丢失的情况,从而影响计算的准确性。
因此我们需要对程序中的计算精度进行控制。
在Maltlab 中可利用digits()函数对运算精度进行规定,为防止出现有效位的损失,在实际程序中需将精度提高几位。
而对迭代中每一步所得到的结果则利用vpa()函数进行限定,这样一来我们对每一个运算都控制了精度,而不只是单纯控制了结果的精度3. 源程序使用Matlab 所编写程序如下所示:(1)clear;clc;sd = 11; %所要保留有效数字 n = 0; %迭代次数S1 = 0; %当前n 时计算结果 S2 = 0; %n-1时计算结果 while 1eq = (4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6))/16^n; S1 = S1 + eq;if abs(S1-S2)<0.5*10^(-(sd-1)) %迭代是否终止判断条件 break endS2 = S1; n = n+1; endS=vpa(S1,sd)(2)clear;clc;sd = 30; %所要保留有效数字digits(sd+2);%控制精度n = 0; %迭代次数S1 = vpa(0); %当前n时计算结果S2 = vpa(0); %n-1时计算结果while 1eq = vpa((4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6))/16^n);S1 = vpa(S1 + eq);if abs(S1-S2)<vpa(0.5*10^(-(sd-1))) %迭代是否终止判断条件breakendS2 = S1;n = n+1;endS=vpa(S1,sd)4.计算结果(1)S =3.1415926536(2)S =3.141592653589793238435711679225.分析总结从计算结果可以看出与准确值3.1415926535897932384357116792180407…相比(1)和(2)所得结果分别是准确值保留11位和30位有效数字的结果,即利用本程序所得结果准确。
计算机上机考试试题及答案

计算机上机考试试题及答案一、选择题1. 以下哪个选项是正确的?A. 计算机的主要作用是存储和处理信息B. 计算机的主要作用是传递和打印信息C. 计算机的主要作用是娱乐和游戏D. 计算机的主要作用是进行通信和通讯2. 在计算机中,CPU是指什么?A. 计算处理单元B. 中央处理单元C. 计算机处理器单元D. 中央处理器单元3. 以下哪个存储设备具有较小的容量但读写速度非常快?A. 硬盘B. 光盘C. 随机存取存储器(RAM)D. 只读存储器(ROM)4. 在计算机领域,RAM是指?A. 随机访问管理B. 随机访问存储器C. 只读存储器D. 只读管理器5. 计算机网络中,LAN是什么的缩写?A. 本地地址网络B. 局域地址网络C. 本地区网络D. 局域网络二、填空题1. 计算机中的最小数据单位是(位)2. 计算机存储容量的最小单位是(字节)3. 局域网中最常用的传输介质是(以太网)4. 计算机操作系统的功能之一是(管理硬件资源)5. WWW的英文全称是(World Wide Web)三、简答题1. 请简要解释什么是操作系统,并列举操作系统的功能。
操作系统是计算机系统中的一种软件,它负责管理和控制计算机的硬件和软件资源,以提供给用户和应用程序一个简单的和友好的界面。
操作系统的主要功能包括:- 管理计算机的硬件资源,如处理器、内存、硬盘等,以保证它们的有效利用和协调工作;- 提供用户与计算机之间的交互界面,包括命令行界面和图形用户界面等;- 负责进程和任务的管理,控制程序的执行顺序和分配资源等;- 提供文件管理功能,包括文件的创建、读取、写入、删除等操作;- 提供网络功能,支持计算机之间的通信和数据交换。
2. 简要解释什么是数据库,并列举数据库管理系统的优点。
数据库是按一定规则组织、存储和管理大量相关数据的集合。
数据库可以通过软件工具来访问和操作,这些软件工具被称为数据库管理系统(DBMS)。
数据库管理系统的优点包括:- 数据共享和数据一致性:多个用户可以同时访问数据库,并且可以保持数据的一致性,避免数据的冗余和不一致。
上机答案

1.假设m是一个三位数,写出将m的个位,十位,百位反序而成的三位数的程序。
(例如:123反序为321)答案 #include<stdio.h>main(){int a,b,c,temp;printf("Enter 3 numbers:\n");scanf("%d%d%d",&a,&b,&c);temp=a;a=c;c=b;b=temp;printf("%d %d %d\n",a,b,c);2. 输入某一年份,判断是否为闰年。
如是输出“Yes”,否则输出“NO”。
答案 #include<stdio.h>Void main(){Int year,leap;Scanf(“%d”,&year);If(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}Elseleap=1;}Elseleap=0;If(leap)Printf(“%d is”,year);ElsePrintf(“%d is not”,year);Printf(“a leap year.\n”);}3. 输入一个不多于5位的正整数,判断其位数并输出。
答案 P1124. 中国古代数学家张丘建提出的“百鸡问题”:一只大公鸡值五个钱,一只母鸡值三个钱,三个小鸡值一个钱。
现在有100个钱,要买100只鸡,是否可以?若可以,给出一个解,要求三种鸡都有。
请写出求解该问题的程序。
答案 #include<stdio.h>void main(){int j,i,t;for(i=0;i<20;i++){for(j=0;j<34;j++){for(t=0;t<=300;t++){if(((5*i+3*j+t/3)<=100)&&((i+j+t)==100))printf("%d%d%d\n",i,j,t);}}}}5. 设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
东南大学数值分析上机题答案

东南⼤学数值分析上机题答案数值分析上机题第⼀章17.(上机题)舍⼊误差与有效数设∑=-=Nj N j S 2211,其精确值为)111-23(21+-N N 。
(1)编制按从⼤到⼩的顺序1-1···1-311-21222N S N +++=,计算N S 的通⽤程序;(2)编制按从⼩到⼤的顺序121···1)1(111222-++--+-=N N S N ,计算NS 的通⽤程序;(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时⽤单精度);(4)通过本上机题,你明⽩了什么?解:程序:(1)从⼤到⼩的顺序计算1-1···1-311-21222N S N +++=:function sn1=fromlarge(n) %从⼤到⼩计算sn1format long ; sn1=single(0); for m=2:1:nsn1=sn1+1/(m^2-1); end end(2)从⼩到⼤计算121···1)1(111222-++--+-=N N S N function sn2=fromsmall(n) %从⼩到⼤计算sn2format long ; sn2=single(0); for m=n:-1:2sn2=sn2+1/(m^2-1); end end(3)总的编程程序为: function p203()clear allformat long;n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn);sn1=fromlarge(n);fprintf('从⼤到⼩计算的值为%f\n',sn1);sn2=fromsmall(n);fprintf('从⼩到⼤计算的值为%f\n',sn2);function sn1=fromlarge(n) %从⼤到⼩计算sn1 format long;sn1=single(0);for m=2:1:nsn1=sn1+1/(m^2-1);endendfunction sn2=fromsmall(n) %从⼩到⼤计算sn2 format long;sn2=single(0);for m=n:-1:2sn2=sn2+1/(m^2-1);endendend运⾏结果:从⽽可以得到N值真值顺序值有效位数2 100.740050 从⼤到⼩0.740049 5从⼩到⼤0.740050 64 100.749900 从⼤到⼩0.749852 3从⼩到⼤0.749900 66 100.749999 从⼤到⼩0.749852 3从⼩到⼤0.749999 6(4)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。
excel上机操作试题及答案

excel上机操作试题及答案Excel上机操作试题及答案试题一:基本操作1. 打开Excel,创建一个新的工作簿。
2. 在A1单元格输入文字“姓名”,在B1单元格输入文字“成绩”。
3. 在A2单元格输入文字“张三”,在B2单元格输入数字85。
4. 在A3单元格输入文字“李四”,在B3单元格输入数字90。
5. 将A1:B3的单元格数据合并为一个单元格。
6. 将工作表的列宽设置为20。
7. 将A1:B3的单元格背景颜色设置为黄色。
8. 保存工作簿为“学生成绩表.xlsx”。
答案一:1. 打开Excel应用程序,点击“新建”按钮创建一个新的工作簿。
2. 在A1单元格输入“姓名”,在B1单元格输入“成绩”。
3. 在A2单元格输入“张三”,在B2单元格输入85。
4. 在A3单元格输入“李四”,在B3单元格输入90。
5. 选中A1:B3单元格,点击“合并和居中”按钮。
6. 选中A列和B列,右键点击选择“列宽”,输入20。
7. 选中A1:B3单元格,点击“开始”选项卡下的“填充颜色”按钮,选择黄色。
8. 点击“文件”选项卡,选择“另存为”,输入文件名“学生成绩表.xl sx”,选择保存位置后点击“保存”。
试题二:公式与函数1. 在C1单元格输入文字“平均分”。
2. 在C2单元格使用AVERAGE函数计算B2:B3的平均分。
3. 在C3单元格使用MAX函数找出B2:B3的最大值。
4. 在C4单元格使用MIN函数找出B2:B3的最小值。
5. 在C5单元格使用SUM函数计算B2:B3的总和。
6. 将C1:C5的单元格数据合并为一个单元格。
7. 将C1:C5的单元格背景颜色设置为绿色。
8. 保存工作簿。
答案二:1. 在C1单元格输入“平均分”。
2. 在C2单元格输入公式`=AVERAGE(B2:B3)`。
3. 在C3单元格输入公式`=MAX(B2:B3)`。
4. 在C4单元格输入公式`=MIN(B2:B3)`。
5. 在C5单元格输入公式`=SUM(B2:B3)`。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.用下列方法求方程e^x+10x-2=0的近似根,要求误差不超过5*10的负4次方,并比较计算量(1)二分法(局部,大图不太看得清,故后面两小题都用局部截图)(2)迭代法(3)牛顿法顺序消元法#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int N=4,i,j,p,q,k; double m;double a[4][5]; double x1,x2,x3,x4; for (i=0;i<N ;i++ )for (j=0;j<N+1; j++ )scanf("%lf",&a[i][j]);for(p=0;p<N-1;p++) {for(k=p+1;k<N;k++){m=a[k][p]/a[p][p];for(q=p;q<N+1;q++)a[k][q]=a[k][q]-m*a[p][q];}}x4=a[3][4]/a[3][3];x3=(a[2][4]-x4*a[2][3])/a[2][2];x2=(a[1][4]-x4*a[1][3]-x3*a[1][2])/a[1][1];x1=(a[0][4]-x4*a[0][3]-x3*a[0][2]-x2*a[0][1])/a[0][0];printf("%f,%f,%f,%f",x1,x2,x3,x4);scanf("%lf",&a[i][j]); (这一步只是为了看到运行的结果)}运行结果列主元消元法function[x,det,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);flag='OK';det=1;x=zeros(n,1);for k=1:n-1 max1=0;for i=k:nif abs(A(i,k))>max1max1=abs(A(i,k));r=i;endendif max1<1e-10flag='failure';return;endif r>kfor j=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;det=-det; endfor i=k+1:nm=A(i,k)/A(k,k);for j=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=b(i)-m*b(k);enddet=det*A(k,k);enddet=det*A(n,n)if abs(A(n,n))<1e-10flag='failure';return;endx(n)=b(n)/A(n,n);for k=n-1:-1:1for j=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);end运行结果:雅可比迭代法function y=jacobi(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>1e-4 x0=y;y=B*x0+f;n=n+1;endyn高斯赛德尔迭代法function y=seidel(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=G*x0+f;n=n+1;endynSOR迭代法function y=sor(a,b,w,x0)D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);lw=(D-w*L)\((1-w)*D+w*U); f=(D-w*L)\b*w;y=lw*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=lw*x0+f;n=n+1;endyn1.分段线性插值:function y=fdxx(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendy(i)= y0(j)*(z-x0(j+1))/(x0(j)-x0(j+1))+y0(j+1)*(z-x0(j))/(x0(j+1)-x0(j));fprintf('y(%d)=%f\nx1=%.3fy1=%.3f\nx2=%.3fy2=%.3f\n\n',i,y(i),x0(j),y0(j),x0(j+1),y0(j+1));endend结果0.39404 0.38007 0.356932.分段二次插值:function y=fdec(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendif j<2j=j+1;elseif (j<n-1)if (abs(x0(j)-z)>abs(x0(j+1)-z))j=j+1;elseif ((abs(x0(j)-z)==abs(x0(j+1)-z))&&(abs(x0(j-1)-z)>abs(x0(j+2)-z)))j=j+1;endendans=0.0;for t=j-1:j+1a=1.0;for k=j-1:j+1if t~=ka=a*(z-x0(k))/(x0(t)-x0(k));endendans=ans+a*y0(t);endy(i)=ans;fprintf('y(%d)=%f\n x1=%.3f y1=%.3f\n x2=%.3f y2=%.3f\n x3=%.3f y3=%.3f\n\n',i,y(i),x0(j-1),y0(j-1),x0(j),y0(j),x0(j+1),y0(j+1));endend结果为0.39447 0.38022 0.357253.拉格朗日全区间插值function y=lglr(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for t=1:mans=0.0;z=x(t);for k=1:np=1.0;for q=1:nif q~=kp=p*(z-x0(q))/(x0(k)-x0(q));endendans=ans+p*y0(k);endy(t)=ans;fprintf('y(%d)=%f\n',t,y(t));endend结果为0.39447 0.38022 0.35722function [p,S,mu] = polyfit(x,y,n)if ~isequal(size(x),size(y))errorendx = x(:);y = y(:);if nargout > 2mu = [mean(x); std(x)];x = (x - mu(1))/mu(2);endV(:,n+1) = ones(length(x),1,class(x));for j = n:-1:1V(:,j) = x.*V(:,j+1);end[Q,R] = qr(V,0);ws = warning;p = R\(Q'*y); warning(ws);if size(R,2) > size(R,1)warning;elseif warnIfLargeConditionNumber(R)if nargout > 2warning;elsewarning;endendif nargout > 1r = y - V*p;S.R = R;S.df = max(0,length(y) - (n+1));S.normr = norm(r);endp = p.';function flag = warnIfLargeConditionNumber(R) if isa(R, 'double')flag = (condest(R) > 1e+10);elseflag = (condest(R) > 1e+05);endx=[1,3,4,5,6,7,8,9,10];y=[10,5,4,2,1,1,2,3,4];p=polyfit(x,y,2);y=poly2sym(p);a=-p(1)/p(2)*0.5;xa=-p(2)/(2*p(1));min=(4*p(1)*p(3)-p(2)^2)/(4*p(1)); yxamin运行截图运行结果function [I] = CombineTraprl(f,a,b,eps)if(nargin ==3)eps=1.0e-4;endn=1;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym( f),findsym(sym(f)),x1));endendI=I2;程序:>> [q]=CombineTraprl('(1-exp(-x))^0.5/x'10^-12,1)结果:q =1.8521欧拉方法function [x,y]=euler(fun,x0,xfinal,y0,n);if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;for i=1:nx(i+1)=x(i)+h;y(i+1)=y(i)+h*feval(fun,x(i),y(i));end程序:[x,y]=euler('doty',0,1,1,10)结果:改进欧拉方法function [x,y]=eulerpro(fun,x0,xfinal,y0,n); if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;x(i+1)=x(i)+h;y1=y(i)+h*feval(fun,x(i),y(i));y2=y(i)+h*feval(fun,x(i+1),y1);y(i+1)=(y1+y2)/2;end程序:>> [x,y]=eulerpro('doty',0,1,1,10)结果:经典RK法function [x,y]=RungKutta4(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2);y(1)=y0;for n=1:length(x)-1k1=feval(dyfun,x(n),y(n));k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1);k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2);k4=feval(dyfun,x(n+1),y(n)+h*k3);y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; end程序:dyfun=inline('(2*x*y^-2)/3');[x,y]=RungKutta4(dyfun,[0,1],1,0.1)标准函数x(1)=0;h=0.1;for i=1:10y(i)=(1+x(i)^2)^(1/3); endxY结果:。