
[数学实验与matlab]程序.doc
74页2数学实验与Matlab 《数学实验与Matlab》程序我将程序按书中的顺序排列,这样便于读者利用 本书程序均通过了调式可直接拷贝到命令窗口运行或编制M文件运行如出现问题,可能是中英文标点的缘故(排版有可能使用了中文标点),请将中文标点换为英文标点试试 实验1.矩阵运算与Matlab命令1.1 知识要点与背景:知识要点和背景:日常矩阵及其运算【 A=[4 2 3;1 3 2;1 3 3;3 2 2], % 表1-1、表1-2的数据分别写成矩阵形式 B=[35 20 60 45;10 15 50 40;20 12 45 20] 】【 C=A*B %矩阵乘法,求各订单所对应的原材料和劳动力 】 【 whos % 查看Matlab工作空间中变量及其规模 】 1.2实验与观察:矩阵和Matlab语言1.2.1 向量的生成和运算 【 x=linspace(0,4*pi,100); %将[0,4π]区间100等分,产生了一个100维向量 y=sin(x); %计算函数值,产生了一个与x同维的100维函数向量y y1=sin(x).^2; %计算函数向量,注意元素群运算 y2=exp(-x).*sin(x); %以x为横坐标,y为纵坐标画函数的图用不同的线型将函数曲线绘制在一个图上 plot(x,y,'-',x,y1,'-',x,y2,'.-') 】 1. 向量的创建 ◆直接输入向量。
【x1=[1 2 4],x2=[1,2,1],x3=x1' 】 ◆冒号创建向量 x1=3.4:6.7 x2=3.4:2:6.7 x3=2.6:-0.8:0 】 ◆生成线性等分向量 【 x=linspace(0,1,5) 】2. 向量的运算 【 y=sin(x) 】 【 y1=sin(x).^2; y2=exp(-x).*sin(x); 】 1.2.2.矩阵创建和运算1.创建矩阵(1)数值矩阵的创建 ◆直接输入法创建简单矩阵 A=[1 2 3 4; 5 6 7 8; 9 10 11 12] 】 【 B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6] 】 (2)符号矩阵的创建 ◆【 syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 … b11 b12 b13 b14 b21 b22 b23 b24 b31 b32 b33 b34A1=[a11 a12 a13 a14 ;a21 a22 a23 a24; a31 a32 a33 a34],B1=[b11 b12 b13 b14 ;b21 b22 b23 b24; b31 b32 b33 b34] 】 2.矩阵的运算 【 C=A1+B1,D=A1-B1 】 【 syms c cA=c*A1 】 【 C=A1*B1 】{ ??? Error using ==> sym/mtimes, Inner matrix dimensions must agree. } 【 A2=A1(:,1:3), B1 】【 G=A2*B1 】【 g11=A2(1,:)*B1(:,1) 】 【 A, A_trans=A' 】 【 H=[1 2 3 ; 2 1 0 ; 1 2 3 ], K=[1 2 3 ; 2 1 0 ; 2 3 1]h_det=det(H), k_det=det(K),H_inv=inv(H),K_inv=K^-1 】 【 A=[3 0 1; 1 1 0;0 1 4]; B=inv(A-2*eye(3))*A, B=(A-2*eye(3))\A 】3.分块矩阵:矩阵的裁剪、分割、修改与抽取(1)【 A=[1 0 1 1 2;0 1 -1 2 3;3 0 5 1 0;2 3 1 2 1], vr=[1,3];vc=[1,3];A1=A(vr,vc) %取出A的1、3行和1、3列的交叉处元素构成新矩阵A1 】 ◆将上面的矩阵A分为四块,并把它们赋值到矩阵B中,观察运行后的结果。
A11=A(1:2,1:2),A12=A(1:2,3:5),A21=A(3:4,1:2),A22=A(3:4,3:5)B=[A11 A12;A21 A22] 】A = 2 0 5 4 2 1 0 -1 2B = 1 2 4 -1 5 3 1 0 -1 0 2 3C = -3 4 18 13 13 14 20 -1 -7 -3 3 6 (2)矩阵的修改和提取 ◆ 【 A=[1 0 1 1 2;0 1 -1 2 3;3 0 5 1 0;2 3 1 2 1] A(1,:)=[0 0 0 0 0]; A 】 ◆ 观察:【 B(:,[2,4])=[ ] %删除矩阵B的第2、4列 】(3)矩阵元素的抽取4.生成特殊矩阵 ◆【 y1=rand(1,5), y2=rand(1,5),rand('seed',3), x1=rand(1,5), rand('seed',3), x2=rand(1,5) 】5. 常用矩阵函数6. 数据的简单分析 ◆【 rand('seed',1);A=rand(3,6), Asort=sort(A), Amax=max(A), Asum=sum(A) 】1.2.3 Matlab工作环境和编程2.Matlab的基本设计1.3应用、思考与练习1.3.1 关系矩阵1.3.2 投入产出 1.3.3 循环比赛的名次 【 A=[0 1 1 0; 0 0 1 1; 0 0 0 1; 1 0 0 0], e=ones(4,1); c=A*e; s=c' 】★ 画矩阵结构图的gplot指令。
◆(3) 【 clf, A=[0 1 1 0;0 0 1 1;0 0 0 1;1 0 0 0]; xy=[0 1;0 0;-1 –0.5;1 –0.5]; graphy_plot(A,xy,1,0.5), % gplot(A,xy) 】1.3.4 参考程序graphy_plot.m 【 function y=graphy_plot(A,xy,l,p) %画矩阵的有向结构图 A为邻接矩阵,xy为顶点坐标,l控制参数,l=0,画无向图; %l~=0,画有向图p为控制箭头大小的参数a=-max(abs(xy(:,1)))*1.1;b=max(abs(xy(:,1)))*1.1;c=-max(abs(xy(:,2)))*1.1;d=max(abs(xy(:,2)))*1.1;if l=0 gplot(A,xy),axis([a b c d]),hold on,elseif l~=0 U=[];V=[];X=[];Y=[]; n=length(A(:,1)) ; for i=1:n k=find(A(i,:)~=0); m=length(k); if(m~=0) for j=1:m u(1)=(xy(k(j),1)-xy(i,1)); v(1)=(xy(k(j),2)-xy(i,2)); u(2)=eps; v(2)=eps; U=[u;U];V=[v;V]; X=[[xy(i,1) xy(k(j),1)];X]; Y=[[xy(i,2) xy(k(j),2)];Y]; end text(xy(i,1),xy(i,2),['\bullet\leftarrow\fontsize{16}\it{V}',… um2str(i)]); hold on, end end gplot(A,xy),axis([a b c d]),hold on, h=quiver(X,Y,U,V,p);set(h,'color','red');hold on, plot(xy(:,1),xy(:,2),'k.','markersize',12),hold on,end , hold off 】实验2.函数的可视化与Matlab作2.1 实验与观察:函数的可视化2.1.1 Matlab二维绘图命令1.周期函数与线性p-周期函数 ◆ 观察 : 【 clf, x=linspace(0,8*pi,100);F=inline('sin(x+cos(x+sin(x)))');y1=sin(x+cos(x+sin(x))); y2=0.2*x+sin(x+cos(x+sin(x)));plot(x,y1,'k:',x,y2,'k-') legend('sin(x+cos(x+sin(x))','0.2x+sin(x+cos(x+sin(x)))',2) 】 2. plot指令:绘制直角坐标的二维曲线3. 图形的属性设置和屏幕控制 【 h=plot([0:0.1:2*pi],sin([0:0.1:2*pi])); grid on set(h,'LineWidth',5,'color','red'); set(gca,'GridLineStyle','-','fontsize',16) 】 ◆设置y坐标的刻度并加以说明,并改变字体的大小。
h=plot([0:0.1:2*pi],sin([0:0.1:2*pi]));grid on, set(gca,'ytick',[-1 -0.5 0 0.5 1]), set(gca,'yticklabel','a|b|c|d|e'), 。






![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)





