%第二章MATLAB 语言程序设计基础% % MATLAB 基本命令简介% MATLAB 程序设计语言基础% 基本数学运算% MATLAB语言流程控制% MATLAB 函数的编写% 二维图形绘制% 三维图形绘制% 二维图形% 基本平面% plot% fplot%f(x)%fplot('tanh',[-2 2])% loglog%双对数图形% semilogx%x轴对数图形% semilogy%zoom%meshgrid% 特殊平面%polar%bar%barh%compass%comet%errorbar%feather%hist 二维直方图%histc 直方图记数%rose 角度直方图%stairs%stem 柄形图%stem3%pie 饼形图% 注释命令% grid% gtext% text% legend% title% xlabel,ylabel% 三维图形%% 三维曲线,面填色命令% comet3 三维彗星% fill3% 三维图形等高线%clabel 二维等高线图中添加高度标签% [x,y] = meshgrid(-2:.2:2);% z = x.*y.*exp(-x.^2-y.^2);% [C,h] = contour(x,y,z);% clabel(C,h);%contour%contourc 低级等高线图形计算命令。
计算等高线矩阵c %contour3 三维空间等高线图%contourf 填充二维等高线图%contour,contour3和contourf%pie3% 曲线与网格图%mesh%surf%surfc%surfl%waterfall% [X,Y,Z] = sphere(30);% %[X,Y,Z] = peaks(30);% waterfall(X,Y,Z)% surf(X,Y,Z)% cylinder% sphere% 其他表现形式% pcolor 伪彩色% quiver 矢量图或速度图% slice% axis% hidden 显示隐含线条% shading 颜色色调属性% caxis 颜色坐标轴刻度% [X,Y,Z] = peaks(30);% C = Z;% mesh(peaks)% hidden off% caxis([-1 1])% view% viewmtx 视点转换矩阵% surfnorm 显示三维曲面法线% [x,y,z] = cylinder(1:10);% surf(x,y,z)% figure% surfnorm(y,x,z)% axis([-12 12 -12 12 -0.1 1])% 通用函数% 图形对象句柄% figure% line% patch% surface% image% uicontrol% uimenu% 轴和控制命令% axes% cla% gca% % 图形句柄操作% gco 返回当前对象的句柄% get 获取对象属性% set% reset% delete% findobj%% % 图形窗口控制% subplot% hold% gcf% clf% close% newplot%% % 颜色与光照模式% % 颜色控制% colormap 设置或获取当前色图% bone 淡兰色的灰度刻度化的色图% cool 阴影的青色和品红的色图% copper 线性铜色色图% flag 红、白、兰、黑的色图% gray 线性灰度化的色图% hot 黑、红、黄、白的色图% hsv 色度-饱和度值的色图% jet% pink 带柔和阴影粉红色图% prism 三棱镜色图%% % 色图控制% brighten 增亮或变暗色图% colorbar 指定颜色刻度的颜色条% contrast 提高灰度色图的对比度% rgbplot 画出色图% diffuse 漫反射率% specular 镜面反射率% surfl 三维带光照模式的阴影图%循环结构%for i=V%%end% while()%% end%选择结构% if()%% elseif()%% else%% end% switch% case%% case%% otherwise%% end% try,% catch,% end%Matlab内部的每一个数据元素都是用双精度数(double)来表示和存储的。
%变量输出时用户可以用format命令设置或改变输出格式。
%符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)%find(), all(), any()%[s1,how]=simple(s) 化简并返回实际采用的化简方法其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。
%subs(B,old ,new)% function [d,e]=jia(m,n)% c=m+n;% d=m-n;% e=m*n;%% end% function A=myhilb(m,n)% %产生A=MYHILB(N,M)或A=MYHILB(N);% if nargin==1% m=n;% else% if nargin==0 | nargin>2% error('Wrong number of input arguments.'); % end% end%% A1=zeros(m,n);% for i=1: m% for j=1:n% A1(i,j)=1/(i+j-1);% end% end% if nargout>1% error('Too many output arguments.');% end% if nargout==1% A=A1;% else% if nargout==0% disp(A1);% end% end% function k=my_fact(n)% if nargin~=1, error('输入变量个数错误,只能有一个输入变量'); end % if nargout>1, error('输出变量个数过多'); end% if abs(n-floor(n))>eps | n<0 % 判定n 是否为整数% error('n 应该为非负整数');% end% if n>1 % 如果n>1, 进行递归调用% k=n*my_fact(n-1);% elseif any([0 1]==n) % 0!=1!=1% k=1;% end% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)% x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);% %syms a b x y% %[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y) % x=0:0.05:2*pi% y=sin(x)% %plot(x,y)% polar(x,y)% hold% stem(x,y)% A=[3 5 7 10];% x1=[1 2];% A(x1)% A=[3 5 7 10];% x1=[1 2];% A(x1)% x2=[true false true];% A(x2)% x3=[1.2 2.3];% A(x3)% function [m,s]=findsum( k) % s=0; m=0;% while (s<=k)% m=m+1;% s=s+m;% end%k=4,1;m1,s1;2,m2,s3;3,m3,s6% a=[1,2,8 ;1 2,4]% [X,Y,Z]=peaks(30);% surf(X,Y,Z)% axis([-3,3,-3,3,-10,10])% axis off;% shading interp;% colormap(hot);% m=moviein(20);% for i=1:20% view(-37.5+24*(i-1),30)% m(:,i)=getframe;% end% movie(m,2);%第三章微积分问题的计算机求解%第三章,微积分问题的计算机求解%% 微积分问题的解析解% 函数的级数展开与级数求和问题求解% 数值微分% 数值积分问题% 曲线积分与曲面积分的计算%3.1 微积分问题的解析解%simple() pretty()%极限问题的解析解% 格式1:L= limit( fun, x, x0)% 格式2:L= limit( fun, x, x0, ‘left’或‘right’)% 格式:L1=limit(limit(f,x,x0),y,y0)或L1=limit(limit(f,y,y0), x,x0)% syms x a b;% f=x*(1+a/x)^x*sin(b/x);% L=limit(f,x,inf)% x=-0.1:0.001:0.1;% y=(exp(x.^3)-1)./(1-cos(sqrt(x-sin(x))));% plot(x,y,'-',0,12,'o')%函数导数的解析解%y=diff(fun,x) %求导数%y= diff(fun,x,n) %求n阶导数%f=diff(diff(f,x,m),y,n)%f=diff(diff(f,y,n),x,m)%J=jacobian(Y,X)%F=-diff(f,xj)/diff(f,xi) 隐函数求导% syms x;%f=sin(x)/(x^2+4*x+3);% f1=diff(f);% syms x y;% z=(x^2-2*x)*exp(-x^2-y^2-x*y);% zx=simple(diff(z,x))% zy=diff(z,y)% [x1,y1]=meshgrid(-3:.2:3,-2:.2:2);% z1=subs(z,{x,y},{x1,y1});% surf(x1,y1,z1), axis([-3 3 -2 2 -0.7 1.5])% contour(x1,y1,z1,30), hold on % 绘制等高线% zx1=subs(zx,{x,y},{x1,y1});% zy1=subs(zy,{x,y},{x1,y1});% quiver(x1,y1,zx1,zy1) % 绘制引力线%积分问题的解析解%F=int(fun,x)%I=int(f,x,a,b)%I=int(f,x,a,inf)% syms x; I1=int(exp(-x^2/2),x,0,1.5) %无解% >> vpa(I1,70)% >> I2=int(exp(-x^2/2),x,0,inf)%顺序的改变使化简结果不同于原函数,但其误差为0,表明二者实际完全一致。