MATLBA实验3-4.docVIP

  • 78
  • 0
  • 约2.03千字
  • 约 4页
  • 2017-05-12 发布于河南
  • 举报
MATLBA实验3-4

实验三 程序的编辑及调试 一、ile|New|M-File编辑以下程序,点击File|Save保存程序。点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。 注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2(1 3(10(5(16(8(4(2(1 6(3(10(5(16(8(4(2(1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 %classic 3n+1 problem from number theory while (1) n=input(Enter n,negative quits:); if n=0 break end a=n; while (n1) if rem(n,2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end a end 2、编程求满足的最小m值。 程序: sum=0;i=1; while (sum=10000) sum=sum+pow2(i); i=i+1; end m=i-1; m 3、,求y=?(用format long查看y的值) 程序: y=0; for n=-10:10 y=y+pow2(n); end format long y 三、思考题 用对分法求解方程在[0,1]内的解,并验证,在程序中统计出对分次数。 提示:先将原方程转化成的形式。 对分法的基本思想是:一个一元方程f(x)=0,若f(x1)*f(x2)0,x1,x2]区间内有实数解。取该区间的中点xm=(x1+x2)/2,f(x1)和f(x2)二者中哪一个与f(xm)异号,若f(x1)*f(xm)0,则解存在的区间缩小为[x1,xm],否则解存在的区间缩小为[xm,x2]。e-10),则认为中点即是原方程的解。 x1=0; x2=1; i=0; while (abs(x1-x2)1e-5) y1=2*exp(-x1)-sin(x1); y2=2*exp(-x2)-sin(x2); xm=(x1+x2)/2; y=2*exp(-xm)-sin(xm); if y*y10 i=i+1; x2=xm; else i=i+1; x1=xm; end end disp(xm) disp(i) 实验四 函数的编写及调试 一、1、编写下面函数。 选择一些数据测试你编写的函数。 function y=y(x) if x=0 y=sin(x); elseif x0x=3 y=x; elseif x3 y=-x+6; end 2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。 function [m_x,max_x,min_x,rms_x]=myfun2(x) 方均根值(Root Mean Square)的计算公式为: 用下面数据测试你写的函数: (1)x=sin(0:0.01:6*pi) (2)x=rand(1,200),x为200个(0,1)之间均匀分布的随机数。 function [m_x,max_x,min_x,rms_x]=myfun2(x) n=length(x); m_x=sum(x)/n; max_x=x(1); min_x=x(1); for i=2:n if max_xx(i) max_x=x(i); end if min_xx(i) min_x=x(i); end end y=0; for i=1:n y=y+x(i).^2; rms_x=sqrt(y/n); end m_x; max_x; min_x; rms_x; 3、编写一个函数,给出一个向量,生成如下范德蒙矩阵。 function [v]=myvander(x) 例如:v=myvander([2 3 4 5]) 得v= function [v]=myander(x) v1=ones(1,length(x)); for k=1:length(x)-1 w=[w;x.^k]; end v=w;

文档评论(0)

1亿VIP精品文档

相关文档