《数学实验与Matlab》程序(2)

2019-01-12 13:57

数学实验与Matlab

★ 画矩阵结构图的gplot指令。 ◆(3)

6

【 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,

6

数学实验与Matlab

plot(xy(:,1),xy(:,2),'k.','markersize',12),hold on, end , hold off 】

7

实验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'), set(gca,'fontsize',20) 】

4. 文字标注指令

【 plot(x,y1,'b',x,y2,'k-') ,

7

数学实验与Matlab

8

set(gca,'fontsize',15,'fontname','times New Roman'), %设置轴对象的字体为times

% New Roman,字体的大小为15

title(' \\it{Peroid and linear peroid function}'); %加标题,注意文字用单引号

' ' 加上

%斜杠'\\'后可输入不同的设置,例如it{…}表示花括号里的文字为斜体;如果有多项设置,

%则可用\\…\\…\\…连续输入。

xlabel('x from 0 to 8*pi it{t}\\'); ylabel('\\it{y}'); %说明坐标轴

text(x(49),y1(50)-0.4,'\\fontsize{15}\\bullet\\leftarrowThe period function {\\itf(x)}');

%在坐标(x(49),y1(50)-0.4)处作文字说明, 各项设置用\隔开。

%\\fontsize{15}\\bullet\\leftarrow的意义依次是:\\字体大小=15 \\ 画圆点 \\左箭头

text(x(14),y2(50)+1,'\\fontsize{15}The {\\itg(x)}\\rightarrow

linear period function

\\bullet') %与上一语句类似,用右箭头 】 ◆观察指令legend和num2str的用

6 Peroid and linear peroid function法:在同一张图上画出y?sin(t)和y?3e?0.5t, 这里t?[0,3?], 并进行适当的标注。

y543The linear period function g(x)?· zxy2_2.m 【

clf,

210-10510·? The period function f(x)t=0:0.1:3*pi;alpha=0:0.1:3*pi;

plot(t,sin(t),'r-');hold on; plot(alpha,3*exp(-0.5*alpha),'k:');

set(gca,'fontsize',15,'fontname','times New Roman'),

15x202530 图2.5 文字标注

xlabel('\\it{t(deg)}');ylabel('\\it{magnitude}');

title(' \\it{sine wave and {\\it{Ae}}^{-\\alpha{\\itt}}wave}'); %注意\\alpha的

意义

text(6,sin(6),'\\fontsize{15}The Value \\it{sin(t)} at {\\itt}=6\\rightarrow\\bullet', 'HorizontalAlignment','right'),

8

数学实验与Matlab

%上面的语句是一整行,如果要写成两行,必须使用续行号 ? ,例如要在

“ bullet',”

%后换行,需写“bullet', ?”后才能换行。

% 'HorizontalAlignment','right' 表示箭头所指的曲线对象在 文字的右边。

9

text(2,3*exp(-0.5*2),['\\fontsize{15}\\bullet\\leftarrow The Value of \\it{3e}^{-0.5 \\it{t}}=',num2str(3*exp(-0.5*2)),' at \\it{t} =2 ']);

%num2str的用法:['string1' ,num2str,'string2'],注意方括号的使用。 %legend('\\itsin(t)','{\\itAe}^{-\\alphat}') % 请结合图形观察此命令的使

用 】

运行结果如图2.6所示。

5. 图形窗口的创建和分割

◆观察:

【 clf,b=2*pi;x=linspace(0,b,50);

for k =1:9

y=sin(k*x);

subplot(3,3,k),plot(x,y),axis([0,2*pi,-1,1]) end 】

2.1.2多元函数的可视化与空间解析几何(三维图形)

本节通过高等数学的几个例子观察Matlab的三维绘图功能和技巧。

1. 绘制二元函数

◆观察:绘制 z?f(x,y)?(1?x)?12ln(x?y)的图象,作定义域的裁剪。

◆(1)观察meshgrid指令的效果。 【 a=-0.98;b=0.98;c=-1;d=1;n=10;

x=linspace(a,b,n); y=linspace(c,d,n); [X,Y]=meshgrid(x,y); plot(X,Y,'+') 】

9

数学实验与Matlab

★三维绘图指令mesh、meshc、surf。

◆(2)做函数的定义域裁剪,观察上述三维绘图指令的效果。

程序zxy2_4.m

10

【 clear,clf,

a=-1;b=1;c=-15;d=15;n=20;eps1=0.01; x=linspace(a,b,n);y=linspace(c,d,n); [X,Y]=meshgrid(x,y);

for i=1:n %计算函数值z ,并作

定义域裁剪

for j=1:n

if (1-X(i,j))

z(i,j)=NaN; %作定义域

裁剪,定义域以外的函数值为NaN

else

z(i,j)=1000*sqrt(1-X(i,j))^-1.*log(X(i,j)-Y(i,j)); end end

end

zz=-20*ones(1,n);plot3(x,x,zz),grid off,hold on %画定义域

的边界线

mesh(X,Y,z) %绘图,读者可用meshz, surf, xlabel('x'),ylabel('y'),zlabel('z'), box on %把三维图形封闭在箱体

里 】

meshc在此替换之

◆运行了zxy2_4.m 以后,有关向量存储在工作空间中,在此基础上,观察上述等值线绘制指令的运行效果。 【

[cs,h]=contour(X,Y,z,15);

clabel(cs,h,'labelspacing',244) 】

2. 三元函数可视化: slice指令

◆ 观察: 绘制三元函数w?x2?y2?z2的可视化图形。

10


《数学实验与Matlab》程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公选课试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: