《计算机应用实践》上机指导书_第1页
《计算机应用实践》上机指导书_第2页
《计算机应用实践》上机指导书_第3页
《计算机应用实践》上机指导书_第4页
《计算机应用实践》上机指导书_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机应用实践上机指导书使用专业:电子信息编制单位:温州大学物理与电子信息学院编制人:李 晗目 录实验一 数值计算和matlab语言初步2实验二 matlab绘图操作4实验三 Matlab数组运算与矩阵运算7实验四 数据可视化11实验五 编制脚本程序19实验六 GUI编制20实验七 SIMULINK仿真基础24实验八 线性方程组的解、矩阵分解和矩阵求逆26实验九 矩阵特征值29实验十 代数插值法33实验十一 数值积分和数组微分38实验十二 函数逼近与拟合41实验名称:实验一 数值计算和matlab语言初步实验目的:1. 了解数值计算的基本思路 ;2. 了解数值计算的基本内容;3. 了解Matl

2、ab语言的特点和历史 。实验内容:1. 讲解:matlab语言特点和历史什么是数值计算2. 熟悉matlab操作界面:² Desktop操作界面² Command Window指令窗² Workspace Browser和Array Editor² Command History和实录指令diary² Current Directory、路径设置和文件管理² Launch Pad交互界面分类目录窗(start)² Editor/Debugger² 帮助系统3. 基本指令:² 求的算术运算结果。²

3、 简单矩阵的输入步骤。² 指令的续行输入S=1-1/2+1/3-1/4+ .1/5-1/6+1/7-1/84. 打开和编辑脚本程序实验名称:实验二 matlab绘图操作实验目的:1. 了解利用Matlab绘图函数绘制函数曲线;2. 了解Matlab编辑器和帮助的使用方法;3. 掌握如何创建和操纵Matlab一维数组;4. 掌握如何创建和操纵Matlab二维数组。实验内容:1. 讲解:² matlab绘图函数及其分类² matlab数组2. 绘制函数曲线² 实现以下绘图程序:X = 0:0.1:1Y = x.*exp(-x)Plot(x,y,*), xla

4、bel(x), ylabel(y), title(y=x*exp(-x)² 画出衰减振荡曲线及其它的包络线。的取值范围是。² 画出所表示的三维曲面(图1.3-4)。的取值范围是。3. 一维数组的创建:² 逐元素创建:x = 2,pi/2,sqrt(3),3+5i² 冒号生成法:x = 1:0.1:5² 定数线性采用法:x = linspace(a,b,n) 即 x=a:(b-a)/(n-1):b4. 一维数组子数组的寻访和赋值² x(3)² x(1,2,5)² X(1:3)² X(3:end)²

5、 X(3:-1:1)² X(find(x>0.5)² X(1,2,3,4,4,3,2,1)5. 二维数组的创建² 直接输入法² 利用mat文件取得² 特殊矩阵的创建:gallery,hadamard,hankel,magic,rand,zeros,ones6. 二维数组元素的标识² 全下标标识² 单下标标识² 转换² 逻辑矩阵7. 二维数组的子数组寻访和赋值² A(r,c)² A(r,:)² A(:)² A(s)² A(r,c)=Sa² A

6、(:)=D² A(s)=Sa实验名称:实验三 Matlab数组运算与矩阵运算实验目的:1. 了解Matlab数组运算与矩阵运算;2. 了解数组构作综合技法;3. 了解高维数组的相关知识;4. 了解关系操作和逻辑操作;5. 了解字符串数组。实验内容:1. 讲解:² 数组运算² 矩阵运算² 比较两者的异同² 数组构作综合技法:数组的赋值扩展法多次寻访扩展法合成扩展法² 创建高维数组:全下标方式同样大小的低维数组合成由维数函数直接创建:ones,zeros,rand,randn由构作函数创建:cat,repmat,reshape²

7、 关系操作和逻辑操作² 字符串数组2. 两种转置比较A zeros(2,3);A(:) = 1:6A = A*(1+i);Aa = A.Am = A3. 构作技法:数组的赋值扩展法A reshape(1:9,3,3)A(5,5) = 111A(:,6) = 2224. 构作技法:多次寻访扩展法AA = A(:,1:6,1:6)AA = repmat(A,1,2)5. 构作技法:合成扩展法AB = A;BAB2 = A,B(:,1:5)triu(A),triu(A,1),triu(A,-1)tril(A),tril(A,1),tril(A,-1)A2 = triu(A,1)+tril(

8、A,-1)AB2 = A(1:2,end:-1:1);B(1,:)6. 构作技法:单下标寻访S = 1 3 6A(s) = 0ind2subsub2indAb1 = A-b(1 1 1,:)Ab2 = A-repmat(b,3,1)Ab3 = A(:,1)-b(1), A(:,2)-b(2), A(:,3)-b(3)7. 高维数组:全下标方式A(2,2,2) = 1B(2,5,:) = 1:38. 同样大小的低维数组合成A = ones(2,3); A(:,:,2)=ones(2,3)*2; A(:,:,3) = ones(2,3)*39. 由函数创建由维数函数直接创建:cat(3,ones(

9、2,3),ones(2,3)*2,ones(2,3)*3)由repmat构作:repmat(ones(2,3),1,1,3)由reshape构作:reshape(1:12,2,2,3)10. 关系操作和逻辑操作A = -3:3L1 = (A>0)L2 = A>0L3 = AL4 = A>-2&A<111. 字符串数组² a = This is an example.² size(a)² 字符串倒排:a14 = a(1:4)ra = a(end:-1:1)² 字符串与ASCII码aAsc = double(a)char(aA

10、sc)12. 字符串的大小写w = find(a>=a & a<=z)aAsc(w) = aAsc(w)-32char(aAsc)13. 中文字符串:A = 这是个算例。实验名称:实验四 数据可视化实验目的:1. 了解数据可视化的一般步骤;2. 掌握二维曲线绘图的基本操作;3. 掌握三维绘图的基本操作;4. 掌握特殊图形和高维可视化的基本操作;5. 掌握关于图像的基本操作。实验内容:1. 讲解:² 用图形表示连续函数对连续函数进行离散化。基本方法:采样。采样密度。² 绘制二维图形:数据准备选定图形窗或子图位置调用绘图指令设置显示值范围、刻度和坐标分格线图

11、形注释图形的精细修饰² 绘制三维图形:三维数据准备:曲线和曲面选定图形窗及子图位置设置显示值范围、刻度和坐标分格线图形注释着色、明暗、灯光和材质处理视点、三度(纵横高)比² 三维图形效果透视镂空裁剪² 特殊图形指令面域图 area直方图 bar barh bar3 bar3h饼图 pie pie3填色图 fill fill32. 用图形表示离散函数n = 0:12;y=1./abs(n+eps-6);plot(n,y,r*,MarkerSize,20);grid on3. 二维绘图:数据准备t = pi*(0:100)/100;y = sin(t).*sin(9*

12、t);4. 二维绘图:选定图形窗及子图位置figure(1);subplot(2,2,3);5. 二维绘图:调用绘图指令plot(t,y,b-)6. 二维绘图:设置显示值范围、刻度和坐标分格线axis(0,pi,-1,1);grid on;7. 二维绘图:图形注释title(调制波形);xlabel(t); ylabel(y);legend(sin(t),sin(t)sin(9t);text(2,0.5,y=sin(t)sin(9t);8. 二维绘图:图形的精细修饰set(h,'MarkerSize',10);9. 二维绘图:叠绘t = 2*pi*(0:20)/20;y = c

13、os(t).*exp(-0.4*t);stem(t,y,'g');hold on;stairs(t,y,'r');hold off;10. 绘制三维曲线t = pi*(0:0.02:2);x = sin(t); y=cos(t); z = cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view(-82,58), box on, legend('链','宝石');11. 绘制三维曲面x = -10:0.1:10;y = -10:0.1:10;X,Y = meshgrid(

14、x,y);Z = X.2+Y.2;mesh(Z);12. 基本三维绘图指令² 曲线:plot3² 曲面:meshsurfstem3² 例程输入:n = 0:0.1:12;y = 1./abs(n+eps-6);h = plot(n,y,'r*','MarkerSize',20);grid on title('调制波形');xlabel('t'); ylabel('y');legend('sin(t)sin(9t)');text(2,0.5,'y=sin(t)si

15、n(9t)'); set(h,'MarkerSize',10);t = 2*pi*(0:20)/20;y = cos(t).*exp(-0.4*t);stem(t,y,'g');hold on;stairs(t,y,'r');hold off;t = pi*(0:0.02:2);x = sin(t); y=cos(t); z = cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view(-82,58), box on, legend('链','宝石'

16、;);x = -10:0.1:10;y = -10:0.1:10; X,Y = meshgrid(x,y);Z = X.2+Y.2;mesh(Z);13. 透视X0,Y0,Z0 = sphere(30);mesh(X0,Y0,Z0);shading interphidden offaxis equal, axis off14. 镂空t = linspace(0,2*pi,100); r = 1-exp(-t/2).*cos(4*t);x,y,z = cylinder(r,60);ii = find(x<0&y>0);z(ii) = NaN;surf(x,y,z); colo

17、rmap(spring); shading interp15. 裁剪x = -8:0.05:8; y = x; X,Y = meshgrid(x,y); ZZ = X.2-Y.2;ii = find(abs(X)>6|abs(Y)>6);ZZ(ii) = zeros(size(ii);surf(X,Y,ZZ), shading interp; colormap(copper)16. 面域图 areax = -2:2y = 3,5,2,4,1;3,4,5,2,1;5,4,3,2,5cum_sum = cumsum(y);area(x',y',0)legend('

18、;因素A','因素B','因素C'),grid on,colormap(spring)17. 直方图 bar barhx = -2:2y = 3,5,2,4,1;3,4,5,2,1;5,4,3,2,5subplot(1,2,1),bar(x',y','stacked')xlabel('x'), ylabel('Sigma y'), colormap(cool) legend('因素A','因素B','因素C')subplot(1,2,2), b

19、arh(x',y','grouped')xlabel('y'), ylabel('x')legend('因素A','因素B','因素C')18. 直方图 bar3 bar3hsubplot(1,2,1), bar3(x',y',1)xlabel('因素ABC'), ylabel('x'),zlabel('y')colormap(summer)subplot(1,2,2), bar3h(x',y','

20、;grouped')ylabel('y'), zlabel('x')19. 饼图 pie pie3a = 1,1.6,1.2,0.8,2.1;subplot(1,2,1), pie(a,1 0 1 0 0),legend('1','2','3','4','5');subplot(1,2,2), pie3(a),colormap(cool)20. 填色图 fill n = 10;dt = 2*pi/n; t = 0:dt:2*pi;t = t,t(1);x = sin(t);

21、y = cos(t);fill(x,y,'c'); axis offgtext('十边行');21. 填色图 fill3xc = ones(2,4)/2;x = xc;0 1 1 0;y = xc;0 0 1 1;z = 1 1 1 1;0 0 0 0;0 0 0 0;c = 1 0 0 1;0 1 0 1;0 0 1 0; fill3(x,y,z,c),view(-10,56),colormap coolxlabel('x'), ylabel('y'), box on, grid on22. 显示图像I = imread(ima

22、ge path);imshow(I);实验名称:实验五 编制脚本程序实验目的:1. 了解M文件编辑器的使用;2. 了解Matlab基本控制流;3. 掌握脚本文件和函数文件及其调用关系;4. 掌握对M文件的调试和剖析;5. 了解面向对象的编程。实验内容:1. 讲解:² Matlab编程基本要素:编辑/调试器条件结构循环结构主程序与函数调用全局变量和局部变量调试性能优化面向对象的编程2. 利用脚本程序改写实验四的数据可视化程序实验名称:实验六 GUI编制 实验目的:1. 了解数值计算的基本思路 ;2. 了解数值计算的基本内容;3. 了解Matlab语言的特点和历史 。实验内容:1. 讲解

23、:句柄的含义根屏幕对象和图形窗对象句柄图形体系对象句柄的获取方法交互式用户界面设计2. 从图形创建指令获取句柄h figure;h = plot();h = mesh();3. 追溯法h_pa = get(h_now,Parent);h_ch = get(h_now,Children);4. 获取当前句柄对象gcf:返回当前图形窗口的句柄gca:返回当前轴的句柄gco:返回鼠标最近点击的图形对象句柄5. 搜索法h = findobj('P1Name', P1Value)h = findobj(h_ob,'P1Name', P1Value)6. 标签法plot(x

24、,y,Tag,A4)plot(x,y); set(gca,Tag,A4);h_ax = findobj(0, Tag,A4)7. 对象属性的获取和设置get(H):获取H句柄对象所有属性的当前值get(H,pn);set(H):显示H所有可设置属性名和全部供选属性值set(H,pn):set(gcf,pointer,circle);8. GUI制作举例clf resetH = axes('unit','normalized','position',0,0,1,1,'visible','off');set(gcf,&

25、#39;currentaxes',H);str = 'fontname隶书归一化二阶系统的阶跃响应曲线'text(0.12,0.93,str,'fontsize',13);h_fig = get(H,'parent');set(h_fig,'unit','normalized','position',0.1,0.2,0.7,0.4);h_axes = axes('parent',h_fig,. 'unit','normalized','

26、position',.1,.15,.55,.7,. 'xlim',0 15,'ylim',0 1.8,'fontsize',8);h_text=uicontrol(h_fig,'style','text',. 'unit','normalized','position',0.67,0.73,0.25,0.14,. 'horizontal','left','string','输入阻尼比系数',

27、9;zeta =');h_edit=uicontrol(h_fig,'style','edit',. 'unit','normalized','position',0.67,0.59,0.25,0.14,. 'horizontal','left',. 'callback',. 'z=str2num(get(gcbo,''string'');',. 't=0:0.1:15;',. 'for

28、k=1:length(z);',. 'y(:,k)=step(1,1 2*z(k) 1,t);',. 'plot(t,y(:,k);',. 'if (length(z)>1) ,hold on,end,',. 'end;',. hold off,);h_push1=uicontrol(h_fig,'style','push',. 'unit','normalized','position',0.67,0.37,0.12,0.15,. &#

29、39;string','grid on','callback','grid on');h_push2=uicontrol(h_fig,'style','push',.'unit','normalized','position',0.67,0.15,0.12,0.15,. 'string','grid off','callback','grid off');9. 自制用户菜单hMenu = uime

30、nu(gcf,label,Color);h_submenu1=uimenu(hMenu,'label','Blue',.'callback','set(gcf,''Color'',''blue'')');h_submenu2=uimenu(hMenu,'label','Red',.'callback','set(gcf,''Color'',''red'

31、9;)');实验名称:实验七 SIMULINK仿真基础实验目的:1. 了解Simulink的基本知识;2. 了解模型的创建方法;3. 了解离散系统建模;4. 了解连续系统建模;5. 了解S函数模块,6. 了解微分方程解算器。实验内容:2. 讲解:² simulink指令² SIMULINK模块库浏览器² 模块的基本操作模块的选定:选定单个和选定多个模块的复制:复制/粘贴Ctrl键模块名操作:点击模块名模块的样式:Format菜单² simulink模型的一般性结构3. 建立一个简单的仿真系统:² 点击“新建”,建立新模型tst1

32、8; 用鼠标在信源模块中选取sine wave,拖曳至tst1窗口² 用鼠标在信宿模块中选取scope,拖曳至tst1窗口² 连线² 启动仿真4. 支持向量显示5. 支持标量扩展6. 插入模块7. 加注释8. 数值分析:积分模块的应用(复位积分)9. 数值分析:微分方程实验名称:实验八 线性方程组的解、矩阵分解和矩阵求逆实验目的:1. 了解线性方程组的数值解法2. 矩阵的三角分解;3. 了解矩阵的QR分解;4. 了解矩阵求逆的原地工作法和全选主元法。实验内容:1. 讲解:² 线性方程组的矩阵表示² 克莱姆法则² 解线性代数方程组

33、78; 高斯消去法² 高斯约当消去法² 计算中的稳定性问题² 矩阵分解2. matlab解方程组源代码:function X=backsub(A,b)%A是一个n阶上三角非奇异阵。%b是一个n维向量。%X是线性方程组AX=b的解。n=length(b);X=zeros(n,1);X(n)=b(n)/A(n,n);for k=n-1:-1:1X(k)=(b(k)-A(k,k+1:n)*X(k+1:n)/A(k,k);End%function X=uptrbk(A,b)%A是一个n阶矩阵。%b是一个n维向量。%X是线性方程组AX=b的解。N N=size(A);X=z

34、eros(1,N+1);Aug=A b;for p=1:N-1 Y,j=max(abs(Aug(p:N,p); C=Aug(p,:); Aug(p,:)=Aug(j+p-1,:); Aug(j+p-1,:)=C; if Aug(p,p)=0 'A是奇异阵,方程无惟一解' break end for k=p+1:N m=Aug(k,p)/Aug(p,p); Aug(k,p:N+1)=Aug(k,p:N+1)-m*Aug(p,p:N+1); endend%这里用到程序8-1中定义的函数backsub来进行回代。X=backsub(Aug(1:N,1:N),Aug(1:N,N+1);

35、3. 利用上面两个函数计算:4. 矩阵的三角分解:A = rand(6)l,u,p = lu(A)5. 矩阵求逆:Inv(A):手算结果用matlab检验实验名称:实验九 矩阵特征值实验目的:1. 了解矩阵特征值和特征向量的基本概念;2. 了解矩阵特征值和特征向量的求取;3. 了解复数特征值对角阵与实数块特征值对角阵的转化;4. 了解矩阵的谱分解和矩阵函数。实验内容:1. 讲解:² 特征值和特征向量² 乘幂法:计算绝对值最大的特征值² 求对称矩阵的雅可比方法² 矩阵的谱分解和矩阵函数什么是数值计算2. 计算以下矩阵的最大特征值和相应的特征向量:取初始向量

36、为:A = 2 3 2;10 3 4;3 6 1;v = 0 0 1' for ii=1:8 v = A*v; u = max(v) v = v/u end3. 雅可比方法matlab程序:A = 2 -1 0;-1 2 -1;0 -1 2 mA,nA = size(A);V = eye(mA);for i=1:5 Ab = abs(A); Ad = diag(diag(Ab); Ab = Ab-Ad; vmax,idx = max(Ab(:); m = -A(idx);p = ceil(idx/mA);q = rem(idx,mA); if q=0 q = mA; end n = (

37、A(q,q)-A(p,p)/2; nSgn = sign(n); if nSgn=0 nSgn = 1; end omiga = nSgn*m/sqrt(m2+n2); sin_theta = omiga/sqrt(2*(1+sqrt(1-omiga2); cos_theta = sqrt(1-sin_theta2); R = eye(mA); R(p,p) = cos_theta; R(q,q) = R(p,p); R(p,q) = -sin_theta; R(q,p) = sin_theta; V = V*R; A = R'*A*R; A A(p,q) sin_theta cos_

38、theta RendV4. 数组乘方和矩阵乘方A = reshape(1:9,3,3);A_Ap = A.0.3A_Mp = A0.3 V,D = eig(A);AAp = V*diag(D(1,1)0.3,D(2,2)0.3,D(3,3)0.3)/V5. 标量的数组乘方和矩阵乘方A = reshape(1:9,3,3);pA_A = (0.3).ApA_M = (0.3)A6. Sin的数组运算和矩阵运算比较A = reshape(1:9,3,3);A_sinA = sin(A)A_sinM = funm(A,'sin')实验名称:实验十 代数插值法实验目的:1. 了解插值的

39、基本概念 ;2. 了解插值的主要方法;3. 了解样条函数和样条插值。实验内容:1. 讲解:² 插值的基本概念² 拉格朗日插值法² 牛顿插值法2. 符号计算² y = sym(2*sin(x)*cos(x) % 把字符表达式转换为符号变量² y = simple(y) % 按规则把已有的y符号表达式成最简形式。² 求矩阵A的相关表达式:行列式,逆阵和特征值syms a11 a12 a21 a22;A=a11,a12;a21,a22DA=det(A),IA=inv(A),EA=eig(A) ² 积分:syms A t tao w

40、; yf=int(A*exp(-i*w*t),t,-tao/2,tao/2); Yf=simple(yf) 3. 计算拉格朗日插值多项式:function LagrangeCz(A) x = A(1,:);y = A(2,:);yp = ;y_str = ; len = length(x);for ii = 1:len yp = ; for jj = 1:len if(ii=jj) xii = num2str(x(ii); xjj = num2str(x(jj); yp = strcat(yp,'*(x-(',xjj,')/(',xii,')-('

41、;,xjj,')'); end endyf = num2str(y(ii); if(1=ii) y_str = strcat(yf,yp); else y_str = strcat(y_str,'+(',yf,')',yp); end end y0 = sym(y_str);y = simple(y0)4. 计算牛顿插值多项式:function NewtonCz(xy) x = xy(1,:);% y = xy(2,:);yp = ;y_str = ; len = length(x);for ii = 1:len val = DifDiv(xy(

42、:,1:ii); yf = num2str(val); if 1=ii y_str = yf; else yp = ; for jj = 1:ii-1 xjj = num2str(x(jj); yp = strcat(yp,'*(x-(',xjj,')'); end y_str = strcat(y_str,'+(',yf,')',yp);endend y0 = sym(y_str);y = simple(y0)function val = DifDiv(xy) x = xy(1,:);y = xy(2,:);count = le

43、ngth(x);if 1>count val = NaN; return;end switch count case 1 val = y(1);case 2 val = (DifDiv(xy(:,1)-DifDiv(xy(:,2)/(x(1)-x(2); otherwise val = (DifDiv(xy(:,1:end-1)-DifDiv(xy(:,1:end-2),xy(:,end)/(x(end-1)-x(end);end实验名称:实验十一 数值积分和数组微分实验目的:1. 了解数值微分和数值积分的基本概念;2. 了解数值微分的基本方法;3. 了解一元函数的数值积分方法4. 了解多元函数的多重数值积分方法。实验内容:1. 讲解:² 数值积分两点公式三点公式² 数值微分插值求积公式辛卜生法高斯求积法一元函数的数值积分多重数值积分2. 一元函数的积分: quad函数fun = inline('exp(-x.*x)','x');Isim = quad(fun,0,1)IL=quadl(fun,0,1)-% funInteg.mfunction y = funInteg(x)y = exp(-x.*x);-% tstquad2.mIsim = quad(funInteg,0,1)IL=quadl(funInteg,0,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论