MATLAB语言程序设计基础

上传人:豆浆 文档编号:37541333 上传时间:2018-04-18 格式:DOCX 页数:41 大小:39.59KB
返回 下载 相关 举报
MATLAB语言程序设计基础_第1页
第1页 / 共41页
MATLAB语言程序设计基础_第2页
第2页 / 共41页
MATLAB语言程序设计基础_第3页
第3页 / 共41页
MATLAB语言程序设计基础_第4页
第4页 / 共41页
MATLAB语言程序设计基础_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《MATLAB语言程序设计基础》由会员分享,可在线阅读,更多相关《MATLAB语言程序设计基础(41页珍藏版)》请在金锄头文库上搜索。

1、%第二章 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 角度直方图%stair

2、s%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 三维空间等高线图%con

3、tourf 填充二维等高线图%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 =

4、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 获取

5、对象属性% set% reset% delete% findobj% % % 图形窗口控制% subplot% hold% gcf% clf% close% newplot% % % 颜色与光照模式% % 颜色控制% colormap 设置或获取当前色图% bone 淡兰色的灰度刻度化的色图% cool 阴影的青色和品红的色图% copper 线性铜色色图% flag 红、白、兰、黑的色图% gray 线性灰度化的色图% hot 黑、红、黄、白的色图% hsv 色度-饱和度值的色图% jet % pink 带柔和阴影粉红色图% prism 三棱镜色图% % % 色图控制% brighten 增

6、亮或变暗色图% 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)来表示和存储的。%变量输出时用户可以用 for

7、mat 命令设置或改变输出格式。%符号型数值可采用变精度函数求值 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

8、 nargin=0 | nargin2% 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 nargout1% 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, er

9、ror(输入变量个数错误,只能有一个输入变量); end% if nargout1, error(输出变量个数过多); end% if abs(n-floor(n)eps | n1 % 如果 n1, 进行递归调用% 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;% x

10、1=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 vpa(I1,70) % I2=int(exp(-x2/2),x,0,inf) %顺序的改变使化简结果不同于原函数,但其误差为 0,表明二者实际完全一致。% syms x y z% int(int(int(4*x*z*exp(-x2*y-z2),x,0,1),y,0,pi),z,0,pi)% ans =% (Ei(1,4*

11、pi)+log(pi)+eulergamma+2*log(2)*pi2*hypergeom(1,2,-pi2)% Ei(n,z)为指数积分,无解析解,但可求其数值解:% vpa(ans,60) %3.2 函数的级数展开与级数求和问题求解%Taylor 幂级数展开%taylaor(f,x,k) % 按 X=0 进行张开%taylaor(f,x,k,a) % 按 X=a 进行张开% 例:对 y=sinx 进行 Taylor 幂级数展开,并观察不同阶次的近似效果。% x0=-2*pi:0.01:2*pi; y0=sin(x0); syms x; y=sin(x);% plot(x0,y0,r-.),

12、 axis(-2*pi,2*pi,-1.5,1.5); hold on% for n=8:2:16% p=taylor(y,x,n), y1=subs(p,x,x0); line(x0,y1) end%F=maple(mtaylaor,f,x1,.,xn,k) 根据原点张开%F=maple(mtaylaor,f,x1=a1,.,xn=an,k) 根据(a1,.an)点张开%Fourier 级数展开%Fourier 级数的解析函数%a+b, F=subs(F,x,x-L-a); end %换回变量区域% syms x; f=x*(x-pi)*(x-2*pi);% A,B,F=fseries(f,

13、x,6,0,2*pi)%级数求和的计算% %S=symsum(fk,k,k0,kn)% syms n; % s=symsum(1/(3*n-2)*(3*n+1),n,1,inf)%采用符号运算工具箱% % m=1:10000000; % s1=sum(1./(3*m-2).*(3*m+1)%数值计算方法,双精度有效位16,“大数吃小数”,无法精确% format long;% s1 % 以长型方式显示得出的结果%syms m n; limit(symsum(1/m,m,1,n)-log(n),n,inf)%3.3 数值微分算法%向前差商公式%向差后商公式%中心差商公式%dy,dx=diff_c

14、tr(y,h,n); %y 为等距实测数据,dy 为得出的导数向量,dx 为相应的自变量向量,dy、dx 的数据比 y 短 。%数值计算 diff(X)表示数组 X 相邻两数的差%中心差分方法及其 MATLAB 实现% function dy,dx=diff_ctr(y, Dt, n)% yx1=y 0 0 0 0 0; yx2=0 y 0 0 0 0; yx3=0 0 y 0 0 0;% yx4=0 0 0 y 0 0; yx5=0 0 0 0 y 0; yx6=0 0 0 0 0 y;% switch n% case 1% dy = (-diff(yx1)+7*diff(yx2)+7*di

15、ff(yx3)- diff(yx4)/(12*Dt); L0=3;% case 2% dy=(-diff(yx1)+15*diff(yx2)- 15*diff(yx3)+diff(yx4)/(12*Dt2);L0=3;% %数值计算 diff(X)表示数组 X 相邻两数的差% case 3% dy=(-diff(yx1)+7*diff(yx2)-6*diff(yx3)-6*diff(yx4)+7*diff(yx5)-diff(yx6)/(8*Dt3); L0=5;% case 4% dy =(-diff(yx1)+11*diff(yx2)-28*diff(yx3)+28*diff(yx4)-11*diff(yx5)+diff(yx6)/(6*Dt4); L0=5;% end% dy=dy(L0+1:end-L0); dx=(1:length(dy)+L0-2-(n2)*Dt;% en

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号