matlab初试牛刀__小练习
% T1 % 最好还是设 h=2 D=1 clear,clc; h=2;D=1; x=-2*D:0.01:2*D; y=h*(x>D)+h/D.*x.*(abs(x)<=D)-h*(x<-D);
% T_2 clear,clc; %用 cumsum函数 % A = (0:63); % B = cumsum(2.^A); % S = B(64) %用for循环 % clear,clc % s=0; % for i=0:63 % s = s+2.^i; % end % s %用sum函数 clear,clc sum(2.^[0:63])
% T_3 clear,clc x1=1; xn = x1/2+3/2*x1; y = xn/2+3/2*xn; disp(abs(y-xn)); while abs(y-xn)>10e-14 xn = y; y = xn/2+3/2*xn; end y;
% T_4 clc,clear x=0; y=0; for i=1:30000 x(i+1)=1+y(i)-1.4*x(i)^2; y(i+1)=0.3*x(i); end %plot(x,y); plot(x,y,'.');
% T_5 两个脚本文件 % bisect5.m <pre name="code" class="plain">function [c,err,yc]=bisect5(f,a,b,delta) %Input - f is the function % - a and b are the left and right endpoints % - delta is the tolerance %Output - c is the zero % - yc= f(c) % - err is the error estimate for c %If f is defined as an M-file function use the @ notation % call [c,err,yc]=bisect(@f,a,b,delta). %If f is defined as an anonymous function use the % call [c,err,yc]=bisect(f,a,b,delta). ya=f(a); yb=f(b); if ya*yb > 0,return,end max1=1+round((log(b-a)-log(delta))/log(2)); for k=1:max1 c=(a+b)/2; yc=f(c); if yc==0 a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end if b-a < delta,break,end end c=(a+b)/2; err=abs(b-a); yc=f(c); % 1_5.m <pre name="code" class="plain">clc,clear format long [answerr,error,value]=bisect5(@(x)x^2*sin(0.1*x+2)-3,0,1000,1e-8)
% T_6 clc,clear t=[0,120,240,0]*pi/180; % 变换成弧度 x=[]; y=[]; for i=0:5:360 tt=i*pi/180; x=[x; cos(tt+t)]; y=[y; sin(tt+t)]; end plot(x',y','r'), axis('square')
% T_7 clc,clear f=@(x,y,z)(x.^x+x.*y+x.*z).*exp(-z)+z.*z.*y.*x+sin(x+y+z.*z);%定义函数 f=x^2+y^2+z^2-10 [x,y,z]=meshgrid(linspace(-4,4,25));%设定网格大小和范围 val=f(x,y,z); [p,v]=isosurface(x,y,z,val,0);%用 isosurface 得到函数 f=0 图形的点和面 patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');% % 用 patch 绘制三角网格图并设定色彩 view(3); grid on; axis equal
% T_8 clc,clear % xy的三维图与等高线 % [x,y]=meshgrid(-1:.1:1); % surf(x,y,x.*y), figure; contour(x,y,x.*y,30) %sin xy 的三维图与等高线 [x,y]=meshgrid(-pi:.1:pi); surf(x,y,sin(x.*y)), figure; contour(x,y,sin(x.*y),30)