数学实验与Mathlab.docx
- 文档编号:30565022
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:135
- 大小:3.12MB
数学实验与Mathlab.docx
《数学实验与Mathlab.docx》由会员分享,可在线阅读,更多相关《数学实验与Mathlab.docx(135页珍藏版)》请在冰豆网上搜索。
数学实验与Mathlab
实验1矩阵运算与Matlab命令
Matlab工作环境和编程
Matlab:
MatrixLab,它是以向量和矩阵运算为基础的。
1.1知识要点与背景:
日常矩阵及其运算
问题橄榄球防护用品的生产管理
表1-1产品与所需的原料和劳动力的关系
原料
产品
防护帽
垫肩
臀垫
硬塑料
4
2
3
泡沫塑料
1
3
2
尼龙线
1
3
3
劳动力
3
2
2
表1-2管理者接到的订单
订单1
订单2
订单3
订单4
防护帽
35
20
60
45
垫肩
10
15
50
40
臀垫
20
12
45
20
【
A=[423;132;133;322],%表1-1、表1-2的数据分别写成矩阵形式
B=[35206045;10155040;20124520]
】
【
C=A*B
%矩阵乘法,求各订单所对应的原材料和劳动力。
】
1.2实验与观察:
矩阵和Matlab语言
在数学实验中,经常要计算函数和绘制函数的图形。
Matlab有许多内部函数,这些函数可以直接作用于向量产生一个同维的函数向量,这是Matlab的一个特点。
观察下面的例子。
【
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)创建向量(或矩阵);
(2)向量(或矩阵)的运算;(3)画图。
1.2.1向量的生成和运算
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;
2.向量的运算
#向量的数乘,向量的平移,向量的加减,数的乘幂
#元素群运算:
元素群运算是指向量(或矩阵)单个元素的成批运算,这种运算要求参与运算的向量(或矩阵)具有相同的维数,并要在有关运算号前加上“.”运算符。
#向量(元素群)的函数计算:
1.2.2矩阵创建和运算
1.创建矩阵
#直接输入法创建简单矩阵----数值矩阵。
#符号矩阵的创建
(1)直接输入法创建简单矩阵。
【
A=[1234;5678;9101112]】
【
B=[-1.3,sqrt(3);(1+2)*4/5,sin(5);exp
(2),6]】
(2)符号矩阵的创建
◆
【
symsa11a12a13a14a21a22a23a24a31a32a33a34…
b11b12b13b14b21b22b23b24b31b32b33b34
A1=[a11a12a13a14;a21…
a22a23a24;a31a32a33a34],
B1=[b11b12b13b14;b21…
b22b23b24;b31b32b33b34]】
2.矩阵的运算
矩阵的加减;矩阵的数乘;矩阵的乘法;方阵的行列式和逆运算;求解矩阵方程。
【
C=A1+B1,D=A1-B1
】
【
symsc
cA=c*A1】
【
C=A1*B1】
{
?
?
?
Errorusing==>sym/mtimes,Innermatrixdimensionsmustagree.
}
【
A2=A1(:
1:
3),B1】
【
G=A2*B1】
【
g11=A2(1,:
)*B1(:
1)】
【
A,A_trans=A'】
【
H=[123;210;123],K=[123;210;231]
h_det=det(H),k_det=det(K),H_inv=inv(H),K_inv=K^-1】
【
A=[301;110;014];
B=inv(A-2*eye(3))*A,
B=(A-2*eye(3))\A】
3.分块矩阵:
矩阵的裁剪、分割、修改与抽取
(1)矩阵的标识
【
A=[10112;01-123;30510;23121],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=[A11A12;A21A22]】
(2)矩阵的修改和提取
◆【
A=[10112;01-123;30510;23121]
A(1,:
)=[00000];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.3Matlab工作环境和编程
1.3应用、思考与练习
1.3.1关系矩阵
1.3.2投入产出
1.3.3循环比赛的名次
【
A=[0110;0011;0001;1000],
e=ones(4,1);c=A*e;
s=c'
】
★画矩阵结构图的gplot指令。
◆(3)
【
clf,A=[0110;0011;0001;1000];xy=[01;00;-1-0.5;1-0.5];
gplot(A,xy)
】
1.3.4参考程序
graphy_plot.m
【
functiony=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;
ifl=0
gplot(A,xy),axis([abcd]),holdon,
elseifl~=0
U=[];V=[];X=[];Y=[];
n=length(A(:
1));
fori=1:
n
k=find(A(i,:
)~=0);
m=length(k);
if(m~=0)
forj=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)]);holdon,
end
end
gplot(A,xy),axis([abcd]),holdon,
h=quiver(X,Y,U,V,p);set(h,'color','red');holdon,
plot(xy(:
1),xy(:
2),'k.','markersize',12),holdon,
end,holdoff
】
实验2.函数的可视化与Matlab作图
2.1实验与观察:
函数的可视化
2.1.1Matlab二维绘图命令
1.周期函数与线性p周期函数
函数f为p周期的:
使f是p周期的最小正数p称为f的周期。
◆观察
【
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)】
结合上面的例子,逐步介绍Matlab的绘图、文字的标注及其绘图属性的设置等。
2.plot指令:
绘制直角坐标的二维曲线
绘制二维曲线的最常用的指令是plot,基本用法为:
#plot(x,y):
以x为横坐标,y为纵坐标绘制函数或数据图形;x,y是同维数的向量。
#plot(y):
绘制一个向量的图形,相当于
时的情形。
#在同一图形窗口中绘制多个曲线:
有下面4种方法做到这一点:
(1)
.
(2)使用holdon.在画完一张图后,用holdon命令保持住,然后再画其它的图形,结束画图后,可用holdoff命令取消连续画图命令。
(3)
(4)使用plotyy命令,plotyy命令设置了两个坐标系,用于绘制不同尺度的函数。
如
[plotyy(x,y1,x,y2),gridon]
3.图形的属性设置和屏幕控制
(1)线型、点型和颜色的控制
观察;改变绘图的线型和颜色。
用gridon指令为图形窗口加上网格线,并改变网格的线型和字体的大小。
【
h=plot([0:
0.1:
2*pi],sin([0:
0.1:
2*pi]));gridon
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]));gridon,
set(gca,'ytick',[-1-0.500.51]),set(gca,'yticklabel','a|b|c|d|e'),
set(gca,'fontsize',20)
】
4.文字标注指令
【
plot(x,y1,'b',x,y2,'k-'),
set(gca,'fontsize',15,'fontname','timesNewRoman'),%设置轴对象的字体为times
%NewRoman,字体的大小为15
title('\it{Peroidandlinearperoidfunction}');
%加标题,注意文字用单引号''加上
%斜杠'\'后可输入不同的设置,例如it{…}表示花括号里的文字为斜体;如%果有多项设置,
%则可用\…\…\…连续输入。
xlabel('xfrom0to8*piit{t}\');ylabel('\it{y}');
%说明坐标轴
text(x(49),y1(50)-0.4,'\fontsize{15}\bullet\leftarrowTheperiodfunction{\itf(x)}');
%在坐标(x(49),y1(50)-0.4)处作文字说明,各项设置用"\"隔开。
%\fontsize{15}\bullet\leftarrow的意义依次是:
\字体大小=15\画圆点\左箭头
text(x(14),y2(50)+1,'\fontsize{15}Thelinearperiodfunction{\itg(x)}\rightarrow\bullet')
%与上一语句类似,用右箭头】
图2.5文字标注
◆观察指令legend和num2str的用法:
在同一张图上画出,这里,并进行适当的标注。
zxy2_2.m
【clf,t=0:
0.1:
3*pi;alpha=0:
0.1:
3*pi;
plot(t,sin(t),'r-');holdon;plot(alpha,3*exp(-0.5*alpha),'k:
');
set(gca,'fontsize',15,'fontname','timesNewRoman'),
xlabel('\it{t(deg)}');ylabel('\it{magnitude}');
title('\it{sinewaveand{\it{Ae}}^{-\alpha{\itt}}wave}');%注意\alpha的意义
text(6,sin(6),'\fontsize{15}TheValue\it{sin(t)}at{\itt}=6\rightarrow\bullet','HorizontalAlignment','right'),
%上面的语句是一整行,如果要写成两行,必须使用续行号…,例如要在%“bullet',”
%后换行,需写“bullet',…”后才能换行。
%'HorizontalAlignment','right'表示箭头所指的曲线对象在文字的右边。
text(2,3*exp(-0.5*2),['\fontsize{15}\bullet\leftarrowTheValueof\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);
fork=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.绘制二元函数
◆观察:
绘制的图象,作定义域的裁剪。
◆
(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,'+')】
★三维绘图指令mesh、meshc、surf。
◆
(2)做函数的定义域裁剪,观察上述三维绘图指令的效果。
程序zxy2_4.m
【
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);
fori=1:
n
%计算函数值z,并作定义域裁剪
forj=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),gridoff,holdon%画定义域的边界线 mesh(X,Y,z) %绘图,读者可用meshz,surf,meshc在此替换之 xlabel('x'),ylabel('y'),zlabel('z'), boxon%把三维图形封闭在箱体里 】 ◆运行了zxy2_4.m以后,有关向量存储在工作空间中,在此基础上,观察上述等值线绘制指令的运行效果。 【 [cs,h]=contour(X,Y,z,15); clabel(cs,h,'labelspacing',244) 】 2.三元函数可视化: slice指令 ◆观察: 绘制三元函数的可视化图形。 【 clf,x=linspace(-2,2,40);y=x;z=x; [X,Y,Z]=meshgrid(x,y,z);w=X.^2+Y.^2+Z.^2; slice(X,Y,Z,w,[-1,0,1],[-1,0,1],[-1,0,1]),colorbar 】 3.空间曲线及其运动方向的表现: plot3和quiver指令 【 clf,t=0: 0.1: 1.5; Vx=2*t;Vy=2*t.^2;Vz=6*t.^3-t.^2; x=t.^2;y=(2/3)*t.^3;z=(6/4)*t.^4-(1/3)*t.^3; %由速度得到曲线 plot3(x,y,z,'r.-'),holdon %画飞行轨迹 %算数值梯度,也就是重新计算数值速度矢量,这只是为了编程的方便,不%是必须的 %图2.12飞机的飞行轨迹与方向 Vx=gradient(x);Vy=gradient(y);Vz=gradient(z); quiver3(x,y,z,Vx,Vy,Vz),gridon%画速度矢量图 xlabel('x'),ylabel('y'),zlabel('z') 】 增加: 基本知识 命令窗口的标点符号: 空格分号;冒号: 逗号,黑点.注释号%方特号[]续行号… 输入变量: #变量名称和函数名称有大小写区别。 #变量名称的第一个字符必须是英文字符。 #变量名称中不可以包含空格或者标点符号,但是可以包括下划线。 处理复数 命令窗口的控制命令 #clf清除图形窗 #clc清除命令窗口中的显示内容 #type显示指定M文件的内容 #clear清除Matlab工作空间中保存的变量 #exit/quit退出Matlab程序 当前目录管理器和路径管理(外p20) 设置当前目录(外p21) Matlab的搜索路径 Matlab7.0基础编程p365 Matlab为用户编写M文件提供编辑器和编译器,用户可以使用这些工具完成复杂运算和应用。 Matlab内置的函数大都是M文件函数。 M文件是将处理问题的各种命令融合在一个文件中,该文件以.m为扩展名,然后由Matlab系统进行编译,得出相应的运行结果,具有相当强大的可开发性和扩展性。 #编写函数文件 步骤: Step1.打开Matlab的文件编辑器。 Step2.在M文件编辑器中,编写“ssort”函数的代码; Step3.保存程序代码。 [functionout=ssort(a) %ssort程序代码按照升序排列数据 %如果需要对大型数据进行排序,请使用Matlab的内置函数 %Definevariables; nvals=size(a,2); forii=1: nvals-1; iptr=ii; forjj=ii+1: nvals
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 实验 Mathlab