计算方法上机题答案
- 格式:docx
- 大小:602.49 KB
- 文档页数:19
(完整版)数值计算⽅法上机实习题答案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.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。
在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。
已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点0 1 2 3 4 5 6深度9.01 8.96 7.96 7.97 8.02 9.05 10.1 3分点7 8 9 10 11 12 13深度11.1812.2613.2813.3212.6111.2910.22分点14 15 16 17 18 19 20深度9.15 7.90 7.95 8.86 9.81 10.810.93(1)请用合适的曲线拟合所测数据点;(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;(1)算法思想分段多项式是由一些在相互连接的区间上的不同多项式连接而成的一条连续曲线,其中三次样条插值方法是一种具有较好“光滑性”的分段插值方法。
在本题中,假设所铺设的光缆足够柔软,在铺设过程中光缆触地走势光滑,紧贴地面,并且忽略水流对光缆的冲击。
计算光缆长度时,用如下公式:20()L f x ds=⎰200(f x =⎰191(k kk f x +==∑⎰= 本题采取三次样条插值的方法,因为三次样条插值方法是一种具有较好“光滑性”的分段插值方法。
根据提供的数据,只用x,y 值,不包含导数值,因此采用第三类三次插值多项式进行插值编程。
设计算法如下: 1.For n i ,,2,1,0⋅⋅⋅=1.1 i i M y ⇒2.For 2,1=k2.1 For k n n i ,,1, -=2.1.1 i k i i i i M x x M M ⇒----)/()(13. 101h x x ⇒-4.For 1-,,2,1n i =4.1 11++⇒-i i i h x x4.2ba c c h h h i i i i i i ⇒⇒-⇒+++2;1;)/(114.3 i i d M ⇒+165.000;;c M d M d n n ⇒⇒⇒λnn n b a b ⇒⇒⇒2;;20μ6. 1111,γμ⇒⇒d b7.获取M 的矩阵元素个数,存入m8.For m k ,,3,2 =8.1kk k l a ⇒-1/μ8.2 k k k k c l b μ⇒⋅-1- 8.3 kk k k l d γγ⇒⋅-1-9.m m m M ⇒μγ/10. For 1,,2,1 --=m m k 10.1 k k k k k M M c ⇒⋅-+μγ/)(1 11. 获取x 的元素个数存入s 12. k ⇒113. For 1,,2,1-=s i 13.1 ifix x ≤~ then k i ⇒;breakelse k i ⇒+114.xx x x x x h x x k k k k ˆ~;~;11⇒-⇒-⇒---yh x h M y x h M y x M x M k k k k k k ~/]ˆ)6()6(6ˆ6[2211331⇒-+-++---(3)源程序clear; clc;x=0:1:20; %产生从0到20含21个等分点的数组 X=0:0.2:20;y=[9.01,8.96,7.96,7.97,8.02,9.05,10.13,11.18,12.26,13.28,13.32,12.61,11.29,10.22,9.15,7.90,7.95,8.86,9.81,10.80,10.93]; %等分点位置的深度数据n=length(x); %等分点的数目 N=length(X);%% 求三次样条插值函数s(x)M=y;for k=2:3; %计算二阶差商并存放在M中 for i=n:-1:k;M(i)=(M(i)-M(i-1))/(x(i)-x(i-k+1));endendh(1)=x(2)-x(1); %计算三对角阵系数a,b,c及右端向量d for i=2:n-1;h(i)=x(i+1)-x(i);c(i)=h(i)/(h(i)+h(i-1));a(i)=1-c(i);b(i)=2;d(i)=6*M(i+1);endM(1)=0; %选择自然边界条件M(n)=0;b(1)=2;b(n)=2;c(1)=0;a(n)=0;d(1)=0;d(n)=0;u(1)=b(1); %对三对角阵进行LU分解y1(1)=d(1);for k=2:n;l(k)=a(k)/u(k-1);u(k)=b(k)-l(k)*c(k-1);y1(k)=d(k)-l(k)*y1(k-1);endM(n)=y1(n)/u(n); %追赶法求解样条参数M(i)for k=n-1:-1:1;M(k)=(y1(k)-c(k)*M(k+1))/u(k);ends=zeros(1,N);for m=1:N;k=1;for i=2:n-1if X(m)<=x(i);k=i-1;break;elsek=i;endendH=x(k+1)-x(k); %在各区间用三次样条插值函数计算X点处的值x1=x(k+1)-X(m);x2=X(m)-x(k); s(m)=(M(k)*(x1^3)/6+M(k+1)*(x2^3)/6+(y(k)-(M(k)*(H^2)/6))*x1+(y(k+1)-(M(k+1)*(H^2)/6))*x2)/H;end%% 计算所需光缆长度L=0; %计算所需光缆长度for i=2:NL=L+sqrt((X(i)-X(i-1))^2+(s(i)-s(i-1))^2);enddisp('所需光缆长度为 L=');disp(L);figureplot(x,y,'*',X,s,'-') %绘制铺设河底光缆的曲线图xlabel('位置X/测量点','fontsize',16); %标注坐标轴含义ylabel('深度Y/m','fontsize',16);title('铺设河底光缆的曲线图','fontsize',16);grid;(4)结果与分析铺设海底光缆的曲线图如下图所示:拟合结果表明,运用分段三次样条插值所得的拟合曲线能较准确地反映铺设光缆的走势图。
基础上机实践习题及答案计算机基础一.判断题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)二进制数-01011=。
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 )计算机病毒不会感染处于写保护状态的软盘。
东南大学计算方法与实习实验报告学院:电子科学与工程学院学号: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++程序进行计算验证采用从大到小或者从小到大的递推公式算法得到的数值基本稳定且误差不大。
计算机上机考试试题及答案一、选择题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)。
数据库管理系统的优点包括:- 数据共享和数据一致性:多个用户可以同时访问数据库,并且可以保持数据的一致性,避免数据的冗余和不一致。
20xx全国计算机等级上机操作题试题(附答案)20xx全国计算机等级上机操作题试题(附答案)「篇一」一级MS office1.字处理题26对考生文件夹下WORD.docx文档中的文字进行编辑、排版和保存,具体要求如下:【文档开始】《数据结构》教学实施意见一、课程的目的与要求《数据结构》课程是计算机应用专业一门重要的专业基础课,它的主要任务是讨论数据的各种逻辑结构、物理结构以及相关的算法。
目的是使学生能够根据实际问题的需要选择合适的数据结构和设计算法。
二、课时安排【文档结束】(1)将标题段(“《数据结构》教学实施意见”)文字设置为二号红色黑体、居中。
(2)将正文第2行开始(“《数据结构》”)到第4行结束(“数据结构和设计算法。
”)中的文字设置为小四号楷体、段落首行缩进2字符、行距1.25倍。
(3)将正文中第1行(一、课程的目的与要求)和第6行(二、课时安排)设置成楷体、红色小三号、并加黄色底纹,段后间距0.5行。
(4)将文中后12行文字转换为一个12行4列的表格。
设置表格居中,表格第2列列宽为5厘米,其余列列宽为2厘米,行高为0.5厘米;表格中所有文字水平居中。
(5)分别用公式计算表格中“授课学时”合计和“实验学时”合计;设置表格外框线为3磅蓝色单实线、内框线为1磅蓝色单实线。
参考解析:(1)【解题步骤】步骤1:通过“答题”菜单打开WORD.docx文件,按题目要求设置标题段字体。
选中标题段,在【开始】功能区的【字体】分组中,单击“字体”按钮,弹出“字体”对话框。
在“字体”选项卡中,设置“中文字体”为“黑体”,设置“字号”为“二号”,设置“字体颜色”为“红色”,单击“确定”按钮。
步骤2:按题目要求设置标题段对齐属性。
选中标题段,在【开始】功能区的【段落】分组中,单击“居中”按钮。
(2)【解题步骤】步骤1:按照题目要求设置正文字体。
选中正文第2行到第5行文字,在【开始】功能区的【字体】分组中,单击“字体”按钮,弹出“字体”对话框。
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.不动点迭代法三、结构程序设计代码1.二分法1).定义所求解函数function [ y ] = f( x )y = x^3 + 4*x^2 - 10;end2).执行算法%初始化,设置区间端点a、b,误差限tola = 1;b = 2; tol = 0.5*10^(-6);k = 0; fa = f(a);%设置最大二分次数为30for k = 1:50p = (a + b)/2; fp = f(p);if(fp == 0 || (b - a)/2 < tol)breakendif(fa * fp < 0)b = p;elsea = p;enddisp('近似解p = ');disp(vpa(p,10)); disp('迭代次数k = ');disp(k);end2.不动点迭代法1).定义不动点方程g(x)function [ y ] = g( x )y = x^3 + 4*x^2 + x - 10;end2).执行算法%初始化,设置误差限,设置初值p0tol = 0.5*10^(-6);k = 1; p0 = 1.5;%迭代次数为10次while k <= 10p = g(p0);if abs(p - p0) < tolbreakenddisp('近似解p = ');disp(vpa(p,10)); disp('迭代次数k = ');disp(k);k = k + 1; p0 = p;end四、结果及其讨论1.二分法结果由于结果较长,只取了一部分,从图中可以看出,迭代20次可得到误差限范围内的近似解p=1.36522。
计算机一级MSOffice上机考试题及答案计算机一级MSOffice上机考试题及答案计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。
是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
下面是店铺收集整理的计算机一级MSOffice上机考试题及答案,仅供参考,希望能够帮助到大家。
计算机一级MSOffice上机考试题及答案篇11、计算机下列硬件设备中,无需加装风扇的是( )。
DA)CPUB)显示卡C)电源D)内存2、奔腾(Pentium)是( )公司生产的一种CPU的型号。
CA)IBMB)MicrosoftC)IntelD)AMD3、计算机之所以能够实现连续运算,是由于采用了( )工作原理。
BA)布尔逻辑B)存储程序C)数字电路D)集成电路4、计算机系统由( )组成。
DA)主机和显示器B)微处理器和软件组成C)硬件系统和应用软件系统D)硬件系统和软件系统5、一般计算机硬件系统的主要组成部件有五大部分,下列选项中不属于这五大部分的事( )。
BA)运算器B)软件C)输入设备和输出设备D)控制器6、微型计算机主机的主要组成部分有( )。
AA)运算器和控制器B)CPU 和软盘C)CPU 和显示器D)CPU和内存储器7、微型计算机硬件系统最核心的部件是( )。
BA)主板B)CPUC)内存储器D)I/O设备8、中央处理器(CPU)主要由( )组成。
BA)控制器和内存B)运算器和控制器C)控制器和寄存器D)运算器和内存9、微型计算机中运算器的主要功能是进行( )。
DA)算术运算B)逻辑运算C)初等函数运算D)算术和逻辑运算10、微型计算机中,控制器的基本功能是( )。
DA)进行算术运算和逻辑元算B)存储各种控制信息C)保持各种控制状态D)控制机器各个部件协调一致的工作11、用电子管作为电子器件制成的计算机属于( )。
AA)第一代B)第二代C)第三代D)第四代12、以大规模、超大规模集成电路为主要逻辑元件的计算机属于( )。
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结果:。