搜档网
当前位置:搜档网 › matlab数学实验必备

matlab数学实验必备

matlab数学实验必备
matlab数学实验必备

数学实验与Matlab 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

数学实验与Matlab 2 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 b34

A1=[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 】

数学实验与Matlab 3 { ??? 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] 】

(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列】

数学实验与Matlab 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' 】

数学实验与Matlab 5 ★画矩阵结构图的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,

数学实验与Matlab 6 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'),

set(gca,'fontsize',20) 】

4. 文字标注指令

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

数学实验与Matlab

7

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 linear period function

{\itg(x)}\rightarrow

\bullet') %与上一语句类似,用右箭头 】 ◆观察指令legend 和num2str 的用法:在同一张图上画出t e y t y 5.03)s i n (-==和, 这里]3,0[π∈t , 并

进行适当的标注。

zxy2_2.m 【

clf,

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'), 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'),

图2.5 文字标注

数学实验与Matlab

8

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

“ bullet',”

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

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

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. 绘制二元函数

◆观察:绘制 )ln()

1(),(1y x x y x f z --==-的图象,作定义域的裁剪。

◆(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,'+') 】

数学实验与Matlab

9

★三维绘图指令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);

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, meshc 在此替换之

xlabel('x'),ylabel('y'),zlabel('z'), box on %把三维图形封闭在箱体

里 】

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

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

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

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

◆ 观察: 绘制三元函数222z y x w ++=的可视化图形。

数学实验与Matlab

10

【 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.-'),hold on %画飞行

轨迹

%算数值梯度,也就是重新计算数值速度矢量,这只是为了编程的方便,不是必

须的

Vx=gradient(x);Vy=gradient(y);V z=gradient(z);

quiver3(x,y,z,Vx,Vy,Vz),grid on %画速度矢量图 xlabel('x'),ylabel('y'),zlabel('z') 】

2.2应用、思考和练习

2.2.1 线性p 周期函数

zxy2_3_f.m

【 function f=zxy2_3_f(x)

f=sin(x+cos(x)); 】 zxy2_3.m 【 clear ,clf

a=-8;b=12;n=300;xx=linspace(a,b,n); h=zxy2_3_f(xx); S(1)=0; for i=2:n

S(i)=S(i-1)+quad('zxy2_3_f',xx(i-1),xx(i));

图2.12 飞机的飞行轨迹与方向

数学实验与Matlab

11

end

subplot(1,2,1),plot(xx,S,'k-'),axis([a,b,-1.5,9])

subplot(1,2,2),plot(xx,[h;zeros(1,length(xx))],'k-'),axis([a,b,-1.5,1.5]) 】

2.2.2 平面截割法和曲面交线的绘制

◆用平行截面法讨论由曲面 222y x z -= 构成的马鞍面形状。

zxy2_6.m ( 平行截割法示例 , 本程序的绘制两曲面交线方法可以套用) 【 clf, a=-20;eps0=1;

[x,y]=meshgrid(-10:0.2:10); %生成平面网格 v=[-10 10 -10 10 -100 100]; %设定空间坐标系的范围

colormap(gray) %将当前的颜色设置为灰色 z1=(x.^2-2*y.^2)+eps; %计算马鞍面函数z1=z1(x,y) z2=a*ones(size(x)); %计算平面 z2=z2(x,y) r0=abs(z1-z2)<=eps0;

%计算一个和z1同维的函数r0,当abs(z1-z2)<=eps 时r0 =1;当abs(z1-z2)>eps0时,r0 =0。

%可用mesh(x,y,r0)语句观察它的图形,体会它的作用,该方法可以套用。

zz=r0.*z2;xx=r0.*x;yy=r0.*y; %计算截割的双曲线及其对应的坐标 subplot(2,2,2), %在第2图形窗口绘制双曲线

h1=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'+'); set(h1,'markersize',2),hold on,axis(v),grid on subplot(2,2,1), %在第一图形窗口绘制马鞍面和平面 mesh(x,y,z1);grid,hold on;mesh(x,y,z2); h2=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'.'); %画出二者的交线 set(h2,'markersize',6),hold on,axis(v),

for i=1:5 %以下程序和上面是类似的,通过循环绘制一系列的平面

去截割马鞍面

a=70-i*30; %在这里改变截割平面

z2=a*ones(size(x)); r0=abs(z1-z2)<=1; zz=r0.*z2;yy=r0.*y;xx=r0.*x; subplot(2,2,3),

mesh(x,y,z1);grid,hold on;mesh(x,y,z2);hidden off

数学实验与Matlab

12

h2=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'.'); axis(v),grid subplot(2,2,4),

h4=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'o'); set(h4,'markersize',2),hold on,axis(v),grid on end 】

2.2.3 微分方程的斜率场

◆ 绘制微分方程 4.0)0( ,==y xy dt

dy

的斜率场,

并将解曲线画在图中,观察斜率场和解曲线的关系。

zxy2_5.m ( 绘制一阶微分方程的斜率场和解曲线)

【 clf,clear %清除当前所有图形窗口的图像,清除当前工作空间的

内存变量。

a=0;b=4;c=0;d=4;n=15;

[X,Y]=meshgrid(linspace(a,b,n),linspace(c,d,n)); %生成区域中的网格。 z=X.*Y;

%计算斜率函数。

Fx=cos(atan(X.*Y));Fy=sqrt(1-Fx.^2); %计算切线斜率矢量。 quiver(X,Y,Fx,Fy,0.5),hold on,axis([a,b,c,d])

%在每一网格点画出相应的斜率矢量,0.5是控制矢量大小的控制参数,可以调整。

[x,y]=ode45('zxy2_5f',[0,4],0.4); %求解微分方程。

%zxy2_5f.m 是方程相应函数f(x,y)的程序,单独编制;[x0,xs]=[0,4]为求解区间;

%y0=0.4为初始值;输出变量x,y 分别为解轨线自变量和因变量数组。

plot(x,y,'r.-') %画解轨线 】 zxy2_5f.m (微分方程的函数子程序) 【 function dy=zxy2_5f(x,y)

dy=x.*y; 】

数学实验与Matlab 13 2.2.4颜色控制和渲染及特殊绘图指令

1.地球表面的气温分布(sphere指令)

【[a,b,c]=sphere(40);t=max(max(abs(c)))-abs(c);surf(a,b,c,t);

axis('equal'),colormap('hot'), shading flat,colorbar 】

2.旋转曲面的生成:柱面指令cylinder和光照控制指令surfl

【x=0:0.1:10;z=x;y=1./(x.^3-2.*x+4);

[u,v,w]=cylinder(y);surfl(u,v,w,[45,45]);

shading interp 】

3.若干特殊图形

◆运行下面程序,了解各指令的用法和效果。

【x=[1:10]; y=[5 6 3 4 8 1 10 3 5 6];

subplot(2,3,1),bar(x,y),axis([1 10 1 11])

subplot(2,3,2),hist(y,x),axis([1 10 1 4])

subplot(2,3,3),stem(x,y,'k'),axis([1 10 1 11])

subplot(2,3,4),stairs(x,y,'k'), axis([1 10 1 11])

subplot(2,3,5), x = [1 3 0.5 5];explode = [0 0 0 1];pie(x,explode)

subplot(2,3,6),z=0:0.1:100; x=sin(z);y=cos(z).*10;

comet3(x,y,z) 】

实验3.函数式-直接确定型模型

3.1知识要点和背景:函数—直接确定性模型

数学实验与Matlab 14 3.2实验与观察:插值与拟合

3.2.1 插值方法与多项式拟合的概念

3.2.2 用Matlab作插值和拟合

3.2.3 用鼠标选节点观察插值、拟合的效果

3.2.4 观察程序说明

zxy3_1.m

【clf,a=-1;b=1;n=100;

%用内联函数inline命令定义函数,

%在后面可直接用于函数g的计算,要改变函数做实验,可按此格式重新定义g g=inline('x^2-x^4'); xx=linspace(a,b,n);

for i=1:n

gx(i)=gxx(i)); % 前面已经用inline命令定义了g,可以这样用g计算函数值

end

ymin=min(gx)*0.8;ymax=max(gx)*1.2;%分四个界面画图g的图形,以便于结果比较

subplot(2,2,1),

plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('近邻插值')

subplot(2,2,2),

plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('线性插值')

subplot(2,2,3),

plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('样条插值')

subplot(2,2,4),plot(xx,gx,'--'),

grid,hold on,axis([a b ymin ymax]),title('多项式拟合')

%用鼠标在屏幕上选点[x,y,button] = ginput(n),可套用下面程序的格

数学实验与Matlab 15 式

button=1;

x1=[a];y1=[gx(1)];

while button==1

[xi,yi,button]=ginput(1);

subplot(2,2,1),h=plot(xi,yi,'ro') %在4个图形窗口画点

subplot(2,2,2),h=plot(xi,yi,'ro')

subplot(2,2,3),h=plot(xi,yi,'ro')

subplot(2,2,4),h=plot(xi,yi,'ro')

x1=[xi,x1];y1=[yi,y1]; %将选的点存于向量x1,y1

end

x1=[b,x1];y1=[gx(n),y1];

xx=linspace(a,b,n); %定义自变量xx

%计算不同的插值函数:x1,y1为节点,xx为输入自变量

ynearest=interp1(x1,y1,xx,'nearest');

ylinear=interp1(x1,y1,xx,'linear');

yspline=interp1(x1,y1,xx,'spline');

%多项式拟合指令[p,s] = polyfit(x,y,n),n为拟合多项式次数,x,y为被拟合数据,

%p为拟合多项式的系数,s是用来做误差估计和预测的数据结构。

[p,c]=polyfit(x1,y1,4);

ypolyfit=polyval(p,xx); %用polyval(p,x)计算系数为p的多项式在标量或向量x处的值

subplot(2,2,1),h=plot(xx,ynearest,'r-');set(h,'linewidth',2) %画图

subplot(2,2,2),h=plot(xx,ylinear,'r-');set(h,'linewidth',2);

subplot(2,2,3),h=plot(xx,yspline,'r-');set(h,'linewidth',2)

subplot(2,2,4),h=plot(xx,ypolyfit,'r-');set(h,'linewidth',2)

3.3应用、思考和练习

数学实验与Matlab 16 3.3.1若干函数的插值和拟合练习

3.3.2几个应用问题

1. 机床加工和水深流速问题

2. 内燃机转角与升程的关系

3. 随高度变化的大气压强

4. 交通事故的调查

3.3.4多元函数的插值

1. 矩形温箱的温度

2. 航行区域的警示线

3.3.5 Fourier级数和周期函数的经验公式

zxy3_2.m

【clf,clear,

n=10;m=3;x=1:1:12;

y=[3.1 3.8 6.9 12.7 16.8 20.5 24.5 25.9 22.0 16.1 10.7 5.4];

z=(pi/6)*x;plot(z(1:12),y(1:12),'o');hold on

k=1:m; %计算数据矩阵。

for i=1:n

X(i,:)=[1 cos(k*z(i)) sin(k*z(i))];

end

c=inv(X'*X)*X'*y(1:n)', %求解。

z1=linspace(0,2*pi,30);

s=[];%开始计算F-级数的部分和。

for i=1:30;

sd=[1 cos(k*z1(i)) sin(k*z1(i))]'; %注意k是向量。

数学实验与Matlab 17 sd=c.*sd; s=[s,sum(sd)];

end

plot(z1,s,'r-'),hold on, xlabel('月份'),ylabel('平均气温

') 】

3.3.6由实验到理论:从开普勒定律和牛顿万有引力定律

实验4. 微分、积分和微分方程

4.1. 知识要点和背景:微积分学基本定理

4.2 实验与观察(Ⅰ):数值微积分

4.2.1实验:积分定义、微分方程和微积分基本定理的联系

◆步骤1.

【n=4;n1=n+1;x=linspace(0,pi,n1);f=myfun2_2(x);[0:n;x;f] 】

◆步骤2.

【y(1)=0; y(2)=y(1)+f(1)*(x(2)-x(1));

P_intial=[x(1),y(1)],P_final=[x(2),y(2)], 】

◆步骤3.

【y(3)=y(2)+f(2)*(x(3)-x(2));

P_intial=[x(2),y(3)], P_final=[x(3),y(3)] 】

◆步骤4。

【Dy=y(3)-y(2) 】

【DS=f(2)*(x(3)-x(2)) 】

◆步骤5 .

4.2.2 求解数值积分的Matlab积分命令

◆观察cumsum指令的功能。

【x=[1 1 1 1 1];I=cumsum(x) 】

◆观察:用累积和命令cumsum计算积分。

【x=linspace(0,pi,50); y=sin(x);

T=cumsum(y)*pi/(50-1);I=T(50) 】

◆观察梯形公式计算的效果。

【x=linspace(0,pi,50); y=sin(x);T=trapz(x,y) 】

◆观察辛普森积分公式的计算效果。

【I1=quad('sin',0,pi), I2=quad8('sin',0,pi), 】

◆观察:用解常微分方程的方法计算积分?π0)

x。

sin(dx

【y0=0;[x,y]=ode23('myfun2_2',[0,pi],y0);s=length(y);y(s)】

【y0=0;[x,y]=ode45('myfun2_2',[0,pi],y0);s=length(y);y(s)】4.2.3 观察程序及其说明

zxy4_1.m (观察方程的解曲线族,图4.1)

【clf,clear,a=0;b=pi;c=0;d=2.2;n=20;

[X,Y]=meshgrid(linspace(a,b,n),linspace(c,d,n));

z=X.*Y; Fx=cos(atan(sin(X)));Fy=sin(atan(sin(X)));

quiver(X,Y,Fx,Fy,0.5),hold on,axis([a,b,c,d])

[x,y]=ode45('zxy4_1f',[0,pi],0);

[x1,y1]=ode45('zxy4_1f',[0,pi],0.2);

[x2,y2]=ode45('zxy4_1f',[0,pi],0.4);

[x3,y3]=ode45('zxy4_1f',[0,pi],0.6);

plot(x,y,'r.-',x1,y1,'r.-',x2,y2,'r.-',x3,y3,'r.-'), xlabel('x') ,ylabel('y') 】zxy4_1f.m

【function dy=zxy4_1f(x,y)

dy=sin(x); 】

. 观察程序zxy4_2.m (图4.1~4.3)

【clf, a=0;b=4*pi;n=31;

x=linspace(a,b,n); y=zeros(1,n); y(1)=0; s(1)=0;

for i=1:n-1

dy=myfun2_2(x(i));

y(i+1)=y(i)+dy*(x(i+1)-x(i));

hh(i)=myfun2_2(x(i));

s(i+1)=s(i)+hh(i)*(x(i+1)-x(i));

end

a1=0.9*a;b1=1.1*b; % 设置坐标范围。

ymin=min(y');ymax=max(y');

ymin1=ymin*0.9;ymax1=ymax*1.1;

subplot(2,1,1), %在第一幅图中画垂线,和原函数。

fplot('1-cos(x)',[0,pi],'r:');axis([a1 b1 ymin1 ymax1]),hold on,

plot([x(1) x(1)],[ymin ymax]);

subplot(2,1,2), %在第二幅图中画被积函数图象。

fplot('myfun2_2',[a b],'-k');hold on,axis([a1 b1 ymin1 ymax1]) for i=1:n-1 %在第I个子区间上计算。

subplot(2,1,1),

plot([x(i+1) x(i+1)],[ymin ymax]); %在各分点画竖线。

plot([x(i) x(i+1)],[y(i),y(i)]); %画水平线。

h=plot([x(i+1) x(i+1)],[y(i),y(i+1)]); %画表示增量的垂线。

set(h,'linewidth',3,'color','b'); %设置线宽和颜色。

h1=plot([x(i) x(i+1)],[y(i) y(i+1)],'.-'); %画折线,设置图形属性。

set(h1,'linewidth',2,'markersize',18);

subplot(2,1,2),

xx=[x(i) x(i) x(i+1) x(i+1)]; yy=[0 hh(i) hh(i) 0]; %计算矩形顶点坐标。

patch(xx,yy,[0.7 0.7 0.7]); %在第二幅图中画矩形块并填充颜色。

plot([x(i+1) x(i+1)],[ymin ymax]);

plot([x(1) x(1)],[s(i),s(i+1)],'r','linewidth',5);%在y轴上画面积增

量线段。

plot(x(1),y(i+1),'r.','Markersize',18);

subplot(2,1,1),plot([x(i+1) x(i+1)],[ymin ymax]);

h=plot([x(1) x(1)],[s(i),s(i+1)]); %画相应的辅助线段。

set(h,'linestyle','-','linewidth',5,'color','red');

plot(x(1),y(i+1),'r.','Markersize',18);

plot([x(1) x(i+1)],[s(i+1) y(i+1)],'r--')

pause %暂停,n 大时应该去掉。

end 】

myfun2_2.m (选择其它的函数进行实验,可修改此程序)

【function y=myfun2_2(x)

sin(x); %y=sin(x)./(x); 】

4.3 实验与观察(Ⅱ):Matlab符号微积分简介

4.3.1 创建符号变量

4.3.2 求符号极限limit指令

◆观察:求下列问题的极限:

【syms x a

I1=limit('(sin(x)-sin(3*x))/sin(x)',x,0)

I2=limit('(tan(x)-tan(a))/(x-a)',x,a)

I3=limit('(3*x-5)/(x^3*sin(1/x^2))',x,inf) 】

4.3.3 求导指令diff

1.符号求导指令diff

MATLAB数学实验第二版答案(胡良剑)

数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

数学实验练习题(MATLAB)

注意:在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上). 第一次练习题 1.求解下列各题: 1)30sin lim x mx mx x ->- 2)(4)cos ,1000.0=x mx y e y 求 3)21/2 0mx e dx ?(求近似值,可以先用inline 定义被积函数,然后用quad 命令) 4)4 224x dx m x +? 5 0x =展开(最高次幂为8). 2.对矩阵21102041A m -?? ?= ? ?-?? ,分别求逆矩阵,特征值,特征向量,行列式,并求矩阵,P D (D 是对角矩阵),使得1A PDP -=。 3. 已知2 1(),()2f x e x μσ=--分别在下列条件下画出)(x f 的图形: (1)/600m σ=,μ分别为0,1,1-(在同一坐标系上作图); (2)0μ=,σ分别为1,2,4,/100m (在同一坐标系上作图). 4.画 (1)sin 020cos 02100x u t t y u t u t z m ??=≤≤?=?≤≤??=?

(2) sin()03,03z mxy x y =≤≤≤≤ (3)sin()(/100cos )02cos()(/100cos )02sin x t m u t y t m u u z u π π=+?≤≤?=+?≤≤?=? 的图(第4题只要写出程序). 5.对于方程50.10200 m x x --=,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会. 第二次练习题 判断迭代收敛速度的程序 x0=1;stopc=1;eps=10^(-8);a=1;c=1;b=2*c;d=a;k=0; f=inline('(a*x+b)/(c*x+d)'); kmax=100; while stopc>eps&k

Matlab数学实验报告一

数学软件课程设计 题目非线性方程求解 班级数学081 姓名曹曼伦

实验目的:用二分法与Newton迭代法求解非线性方程的根; 用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 编程实现二分法及Newton迭代法; 学会使用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 通过实例分别用二分法及迭代法解非线性方程组并观察收敛速度。 实验内容: 比较求exp(x)+10*x-2的根的计算量。(要求误差不超过十的五次方) (1)在区间(0,1)内用二分法; (2)用迭代法x=(2-exp(x))/10,取初值x=0 。 试验程序 (1)二分法: format long syms x s=exp(x)+10*x-2 a=0; b=1; A=subs(s,a) B=subs(s,b) f=A*B %若f<0,则为由根区间 n=0; stop=1.0e-5; while f<0&abs(a-b)>=stop&n<=100; Xk=(a+b)/2; %二分 M= subs(s, Xk); if M* A<0 symbol=1 %若M= subs(s, Xk)为正,则与a二分 b= Xk else symbol=0 % 若M= subs(s, Xk)为负,则与b二分 a= Xk end n=n+1 end Xk n (2)牛顿迭代法; format long

syms x s= (2-exp(x))/10; %迭代公式 f=diff(s); x=0; %迭代初值 a=subs(f,x); %判断收敛性(a是否小于1) s=(2-exp(x))/10; stop=1.0e-5; %迭代的精度 n=0; while a<1&abs(s-x)>=stop&n<=100; x=s %迭代 s=(2-exp(x))/10; n=n+1 end 实验结果: (1)二分法: symbol =1 b =0.50000000000000 n =1 symbol =1 b =0.25000000000000 n =2 symbol =1 b =0.12500000000000 n =3 symbol =0 a =0.06250000000000 n =4 symbol =1 b =0.09375000000000 n =5 symbol =0 a =0.07812500000000 n =6 symbol =1 b =0.09054565429688 n =15 symbol =1 b =0.09053039550781 n =16 symbol =0 a =0.09052276611328 n =17 Xk =0.09052276611328 n =17 (2)迭代法 由x =0.10000000000000 n =1 x =0.08948290819244 n =2 x =0.09063913585958 n =3 x =0.09051261667437 n =4 x =0.09052646805264 n =5 试验结果可见用二分法需要算17次,而用迭代法求得同样精度的解仅用5次,但由于迭代法一般只具有局部收敛性,因此通常不用二分法来求得非线性方程的精确解,而只用它求得根的一个近似解,再用收敛速度较快的迭代法求得其精确解。

matlab数学实验练习题

Matlab 数学实验 实验一 插值与拟合 实验内容: 预备知识:编制计算拉格朗日插值的M 文件。 1. 选择一些函数,在n 个节点上(n 不要太大,如5 ~ 11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m 要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n ,再做比较,由此作初步分析。下列函数任选一种。 (1)、 ;20,sin π≤≤=x x y (2)、;11,)1(2/12≤≤--=x x y (3)、;22,c o s 10 ≤≤-=x x y (4)、22),exp(2≤≤--=x x y 2.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为 ) (0)()(t e V V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。试由下面 一组t ,V 数据确定0V 和τ。 实验二 常微分方程数值解试验 实验目的: 1. 用MATLAB 软件求解微分方程,掌握Euler 方法和龙格-库塔方法; 2. 掌握用微分方程模型解决简化的实际问题。 实验内容:

实验三地图问题 1.下图是一个国家的地图,为了计算出它的国土面积,首先对地图作如下测量: 以由西向东方向为x轴,由南到北方向为y轴,选择方便的原点,并将从最西边界点到最东边界点在x轴上的区间适当地划分为若干段,在每个分点的y方向测出南边界点和北边界点的y坐标y1和y2,这样就得到了表中的数据(单位mm)。 根据地图的比例我们知道18mm相当于40km,试由测量数据计算该国土 的近似面积,并与它的精确值41288km2比较。

MATLAB实验报告

实验一 MATLAB 环境的熟悉与基本运算 一、实验目的及要求 1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容 1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口: 命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。 ②路径的设置: 建立自己的文件夹,加入到MATLAB 路径中,并保存。 设置当前路径,以方便文件管理。 2.学习使用clc 、clear ,了解其功能和作用。 3.矩阵运算: 已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。 4.使用冒号选出指定元素: 已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 6.关系及逻辑运算 1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作 1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num

8.符号运算 1)对表达式f=x 3 -1 进行因式分解 2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求 3(1)x dz z +? 三、实验报告要求 完成实验内容的3、4、5、6、7、8,写出相应的程序、结果

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

MATLAB数学实验100例题解

一元函数微分学 实验1 一元函数的图形(基础实验) 实验目的 通过图形加深对函数及其性质的认识与理解, 掌握运用函数的图形来观察和分析 函数的有关特性与变化趋势的方法,建立数形结合的思想; 掌握用Matlab 作平面曲线图性的方法与技巧. 初等函数的图形 2 作出函数x y tan =和x y cot =的图形观察其周期性和变化趋势. 解:程序代码: >> x=linspace(0,2*pi,600); t=sin(x)./(cos(x)+eps); plot(x,t);title('tan(x)');axis ([0,2*pi,-50,50]); 图象: 程序代码: >> x=linspace(0,2*pi,100); ct=cos(x)./(sin(x)+eps); plot(x,ct);title('cot(x)');axis ([0,2*pi,-50,50]); 图象: cot(x) 4在区间]1,1[-画出函数x y 1 sin =的图形. 解:程序代码: >> x=linspace(-1,1,10000); y=sin(1./x); plot(x,y); axis([-1,1,-2,2]) 图象:

二维参数方程作图 6画出参数方程???==t t t y t t t x 3cos sin )(5cos cos )(的图形: 解:程序代码: >> t=linspace(0,2*pi,100); plot(cos(t).*cos(5*t),sin(t).*cos(3*t)); 图象: 极坐标方程作图 8 作出极坐标方程为10/t e r =的对数螺线的图形. 解:程序代码: >> t=0:0.01:2*pi; r=exp(t/10); polar(log(t+eps),log(r+eps)); 图象: 90270 分段函数作图 10 作出符号函数x y sgn =的图形. 解:

matlab 数学实验 迭代 _ 蛛网图(免积分)

数学实验—实验报告(免积分) 一、实验项目:Matlab实验三—迭代 二、实验目的和要求 a.熟悉MATLAB软件的用户环境,掌握其一般目的命令和MATLAB数组操作与 运算函数; b.掌握MATLAB软件的绘图命令,能够熟练应用循环和选择结构实现各种循环 选择功能; c.借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜 想,发现进而证实其中的规律。 三、实验内容 问题一:将方程53 x x x +-+=改写成各种等价的形式进行迭代 5210 观察迭代是否收敛,并给出解释。 问题二:迭代以下函数,分析其收敛性。 4 f(x)=x-a 使用线性连接图、蛛网图或费根鲍姆图对参数a进行讨论和观察,会得到什么结论? 问题一: (1)画图 x1=-6:0.01:6; x2=-3:0.01:3; x3=-1:0.01:1; x4=-0.8:0.01:-0.75; y1=x1.^5 +5*x1.^3-2*x1+1; y2=x2.^5 +5*x2.^3-2*x2+1; y3=x3.^5 +5*x3.^3-2*x3+1; y4=x4.^5 +5*x4.^3-2*x4+1; subplot(2,2,1),plot(x1,y1) ,title('图(1)') ,grid on, subplot(2,2,2),plot(x2,y2) ,title('图(2)'),grid on, subplot(2,2,3),plot(x3,y3) ,title('图(3)'),grid on, subplot(2,2,4),plot(x4,y4) ,title('图(4)') ,grid on,

MATLAB数学实验报告

Matlab 数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC 的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

数学实验与数学软件(Mathmaticandmatlab)

数学软件与数学实验2013-2014学年度秋季学期期末试卷 专业:统计学 班级:11级2班 学号:20110723 姓名:晏静

一、按要求计算出下列表达式的值 (1)318, 3 162 53 ?? + ? ?? , 21 eπ+, 2.5 tg, 2 log15; (2)给出π的9位和e的10位近似值; (3)求658和4102的最大公约数及35和25的最小公倍数; (4)产生10个0与10之间随机数的一个表; (5)求虚数1453 i i i i +- -的实部,虚部,模,共轭,辐角。 (6)自己运用Table建立两个表,并进行表运算,如连接、并集、交、排序等操作。

二、因式分解 22212321332112322 1 22(1)()()()4;(2)21;x x x x x x x x x x x x x x x +++++---- 解: 三、解方程(组) 1234234124234-2+344-+-3(1)+31-73+3 x x x x x x x x x x x x x -=??=? ? +=??+=-? 65432(2)5232002000.x x x x x x -+--++= 四、求极限 () 20 (1)1sin ;(2);(3)56! ctg x n x n n n Lim x Lim n n →→∞ →∞++

(1) (2) (3) 五、求导数 32 22(1)()=ln(x+1+);(2)()=cos 2,; (3)=log (),Z . x f x x f f x e y x y Z xy x y y ???求的导数已知求求关于的二阶导 (1) (2) (3) 六、求下列定积分与不定积分: ()()()12201+sin ln 1+(1);(2);(3)sin (1+cos ) +1(1+)(2+-) x x dx dx x x x x x x ? ? ?2 2-(4)=0,=1,==.y D D x y y x I x e d σ??设是由直线围成的区域,计算的值 (1) (2)

Matlab数学实验一2015(标准答案版)

Matlab数学实验一——matlab初体验 一、实验目的及意义 [1] 熟悉MATLAB软件的用户环境; [2] 了解MATLAB软件的一般目的命令; [3] 掌握MATLAB数组操作与运算函数; 通过该实验的学习,使学生能熟悉matlab的基础应用,初步应用MATLAB软件解决一些简单问题。 二、实验内容 1.认识matlab的界面和基本操作 2.了解matlab的数据输出方式(format) 3. MATLAB软件的数组(矩阵)操作及运算练习; 三、实验任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→原理→算法与编程→计算结果或图形→心得体会) 完成如下题目,并按照实验报告格式和要求填写实验报告 1.在commandwindow中分别输入如下值,看它们的值等于多少,并用matlab的help中查询这些缺省预定义变量的含义,用中文写出它们的意义。 ijeps inf nan pi realmaxrealmin 2.分别输入一个分数、整数、小数等,(如:a=1/9),观察显示结果,并使用format函数控制数据的显示格式,如:分别输入format short、format long、format short e、format long g、format bank、format hex等,然后再在命令窗口中输入a,显示a的值的不同形式,并理解这些格式的含义。 3.测试函数clear、clc的含义及所带参数的含义(利用matlab的help功能)。 4. 写出在命令窗口中的计算步骤和运行结果。 (1)计算 1.22 10 (ln log) 81 e ππ +- ; >>(log(pi)+log(pi)/log(10)-exp(1.2))^2/81 >>ans = 0.0348 (2) >> x=2;y=4; >> z=x^2+exp(x+y)-y*log(x)-3 z = 401.6562 (3)输入变量 13 5.3, 25 a b ?? ==?? ?? ,在工作空间中使用who,whos,并用save命令将变量存入”D:\exe0 1.mat”文件。测试clear命令,然后用load命令将保存的”D:\exe01.mat”文件载入>> a=5.3 a=

MATLAB数学实验A

clear; clc; a=1;b=1; ezplot(sprintf('x^2/%f-y^2/%f',a^2,b^2)); hold on; ezplot(sprintf('x^2/%f-y^2/%f-1',a^2,b^2)); ezsurf('sin(a)*cos(b)','sin(a)*sin(b)','cos(a)',[0,pi,0,2*pi],60); hold on; ezsurf('x^2+y^2',[-1,1,-1,1],60);

clear all; x=-8:0.1:8; y=-8:0.1:8; [X,Y]=meshgrid(x,y); Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+2); [X,Y,Z]=peaks(50); surf(X,Y,Z)

syms x y; y=2*x^3-6*x^2-18*x+7; solve(diff(y,x),x) x=-1;eval(y) x=3;eval(y)

syms x y; z='x*y'; dblquad(z,1,4,-1,2) 结果 ans = 11.2500 求函数1+x -exp(2*x)+5的原函数clear all syms x C; f=int(1+x -exp(2*x)+5,'x')+C syms x y; >> x=0:0.01:1; >> y=sin(sin(x)); >> trapz(x,y)

x=0:0.05:1; y=[1.97687 2.17002 2.34158 2.46389 2.71512 3.06045 3.27829 3.51992 3.8215 4.2435 4.55188 4.88753 5.15594 5.698 6.04606 6.42701 7.00342 7.50192 7.89178 8.49315 9.0938] cftool 解常微分方程y’=-0.9y/(1+2x)的数值解y(0)=1 从0到0. 1的数值解,取步长0.02 clear all x1=0; x2=0.1; h=0.02; y(1,1)=1;

数学实验matlab练习题

2015-2016数学实验练习题 一、选择题 1.清除Matlab工作空间(wordspace)变量的命令是(B ) A. clc B. clear C. clf D.delete 2. 清除当前屏幕上显示的所有内容,但不清除工作空间中的数据的命令是( A ) A. clc B. clear C. clf D.delete 3. 用来清除图形的命令( C ) A. clc B. clear C. clf D.delete 4. 在MATLAB程序中,使命令行不显示运算结果的符号是( A ) A. ; B. % C. # D. & 5. 在MATLAB程序中,可以将某行表示为注释行的符号是( B ) A. ; B. % C. # D. & 6.在循环结构中跳出循环,执行循环后面代码的命令为 ( B ) A. return B. break C. continue D. Keyboard 7.在循环结构中跳出循环,但继续下次循环的命令为( C ) A. return B. break C. continue D. Keyboard 8. MATLAB中用于声明全局变量的关键字是( C ) A. inf B. syms C. global D. function 9. 用户可以通过下面哪项获得指令的使用说明( A ) A. help B. load C. demo D. lookfor 10.在MATLAB命令窗口中键入命令S=zoros(3);可生成一个三行三列的零矩阵,如果省略了变量名S,MATLAB表现计算结果将用下面的哪一变量名做缺省变量名( A ) A. ans; B. pi; C. NaN; D. Eps. 11. 9/0的结果是( B ) A. NAN; B. Inf; C. eps; D. 0 12.在MATLAB中程序或语句的执行结果都可以用不同格式显示,将数据结果显示为分数形式,用下面哪一条命令语句( D ) A. format long; B. format long e; C. format bank; D. fromat rat 13. 下列MATLAB命令中是构造1行3列的(-1,1)均匀分布随机矩阵的命令的是(D)

matlab数学实验练习题

Matlab 数学实验 实验一 插值与拟合 实验内容: 预备知识:编制计算拉格朗日插值的M 文件。 1. 选择一些函数,在n 个节点上(n 不要太大,如5 ~ 11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m 要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n ,再做比较,由此作初步分析。下列函数任选一种。 (1)、 ;20,sin π≤≤=x x y (2)、;11,)1(2/12≤≤--=x x y (3)、;22,cos 10≤≤-=x x y (4)、22),ex p(2≤≤--=x x y 2.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为 ) (0)()(τt e V V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。试由下面 一组t ,V 数据确定0V 和τ。 实验二 常微分方程数值解试验 实验目的: 1. 用MATLAB 软件求解微分方程,掌握Euler 方法和龙格-库塔方法; 2. 掌握用微分方程模型解决简化的实际问题。 实验内容: 实验三 地图问题 1. 下图是一个国家的地图,为了计算出它的国土面积,首先对地图作如下测量:以由西向东方向为x 轴,由南到北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当地划分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到了表中的数据(单位mm )。

根据地图的比例我们知道18mm相当于40km,试由测量数据计算该国土 2 实验四狼追兔问题 狼猎兔问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题。当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处。当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。狼在追赶过程中所形成的轨迹就是追击曲线。狼是否会在兔子跑回洞穴之前追赶上兔子? 为了研究狼是否能够追上兔子,可以先考虑求出狼追兔子形成的追击曲线,然后根据曲线来确定狼是否能够追上兔子。 试验五:开放式基金的投资问题 某开放式基金现有总额为15亿元的资金可用于投资,目前共有8个项目可供投资者选择。每个项目可以重复投资,根据专家经验,对每个项目投资总额不能太高,且有个上限。这些项目所需要的投资额已经知道,在一般情况下,投资一年后各项目所得利润也可估计出来(见表一), 表一: 投资项目所需资金及预计一年后所得利润(单位:万元)

matlab数学实验复习题(有答案)

复习题 1、写出3个常用的绘图函数命令 2、inv (A )表示A 的逆矩阵; 3、在命令窗口健入clc 4、在命令窗口健入 clear 5、在命令窗口健入6、x=-1:0.2:17、det (A )表示计算A 的行列式的值;8、三种插值方法:拉格朗日多项式插值,分段线性插值,三次样条插值。 9、若A=123456789?? ???????? ,则fliplr (A )= 321654987?? ???????? A-3=210123456--??????????A .^2=149162536496481?????? ???? tril (A )=100450789?? ???????? triu (A ,-1)=123456089??????????diag (A )=100050009?? ???? ???? A(:,2),=258A(3,:)=369 10、normcdf (1,1,2)=0.5%正态分布mu=1,sigma=2,x=1处的概率 [t,x]=ode45(f,[a,b],x0),中参数的涵义是fun 是求解方程的函数M 文件,[a,b]是输入向量即自变量的围a 为初值,x0为函数的初值,t 为输出指定function 开头;17、二种数值积分的库函数名为:quad;quadl

4 3,4 21、设x )的功能是作出将X 十等分的直方图 22、interp1([1,2,3],[3,4,5],2.5) Ans=4.5 23、建立一阶微分方程组???+='-='y x t y y x t x 34)(3)(2 的函数M 文件。(做不出来) 二、写出运行结果: 1、>>eye(3,4)=1000 01000010 2、>>size([1,2,3])=1;3 3、设b=round (unifrnd (-5,5,1,4)),则=3 5 2 -5 >>[x,m]=min(b);x=-5;m=4 ,[x,n]=sort(b) -5 2 3 5 4 3 1 2 mean(b)=1.25,median (b )=2.5,range (b )=10 4、向量b 如上题,则 >>any(b),all(b<2),all(b<6) Ans=1 0 1 5、>>[5 6;7 8]>[7 8;5 6]=00 11 6、若1234B ?? =?? ??,则 7、>>diag(diag(B))= 10 04 8、>>[4:-2:1].*[-1,6]=-4 12 9、>>acos(0.5),atan(1) ans= 1.6598 ans= 0.7448 10、>>norm([1,2,3]) Ans=3.3941 11、>>length ([1,3,-1])=3

Matlab数学实验知识点与函数集

1.1 数学实验教学内容 1.1.1知识点(初稿) 课程考核涉及函数主要为下列知识点对应的Matlab函数。 知识点 Matlab函数1入门基础 1.1创建向量、矩阵(如rand,eye) 1.2常数,全局变量 1.3算术运算符 1.4关系运算符 1.5逻辑运算符 1.6数据输入、输出,输出格式 1.7绘图函数 1.7.1绘制曲线 1.7.2绘制曲面 1.7.3极坐标、参数方程 1.7.4绘图导出 1.7.5其他函数 1.8常用函数 1.9数学函数 1.10字符串操作函数 1.11文件操作函数 2控制语句 2.1分支语句 2.2循环语句 2.3其他语句、函数 3函数 3.1inline 3.2主函数 3.3子函数 4线性代数实验:,[ ], linspace, zeros, rand, randn, eye, ones, vander ans, pi, realmax, realmin, eps, inf, NaN, global +, -, *, /, .*, ./, ^, .^ <, <=, >, >=, ~= &, |, ~ load, save, format, vpa plot, plot3, ezplot, ezplot3, fplot, figure meshgrid, mesh, surf, contour polar bar, hold on, hold off, size, find, length, whos, sum, diag, class, min, max, sort, abs, input, pause, disp, cputime exp, sqrt, log, sin, cos, tan, cot, asin, acos, atan, acot, conj, real, imag, fix, floor, ceil, round, pow2, power, rem, mod, rat strcat, strvcat, str2num, num2str, sprintf fopen, fclose, fgetl, fprintf if, elseif, else, end, switch, otherwise for, while continue, break, error, warning inline function, nargin, nargout

MATLAB数学实验6

实验二定积分的近似计算 学号: 姓名:XX 一、实验目的 1. 加深理解积分理论中分割、近似、求和、取极限的思想方法,了解定积分近似计算的矩阵形法、梯形法与抛物线法。2.会用matlab 语言编写求定积分近似值的程序。3. 会用matlab 中的命令求定积分。 二、实验内容 1. 定积分近似计算的几种简单数值方法 在许多实际问题中,常常需要计算定积分()b a I f x dx = ?的值。根据微积分学基本原理, 若被积函数()f x 在区间[a,b]上连续,只需要找到被积函数的一个原函数()F x ,就可以用牛顿莱布尼兹公式计算。但在工程技术与科学实验中,有一些定积分的被积函数的原函数可能求不出来,即使可求出,计算也可能很复杂。特别地,当被积函数是图形或表格给出时,更不能用牛顿—莱布尼兹公式计算。因此必需寻求定积分的近似计算方法。大多数实际问题的积分需要用数值积分方法求出近似结果。数值积分原则上可以用多项式函数近似代替被积函数,用对多项式的积分结果近似代替对被积函数的积分。由于所选多项式形式的不同,可以有许多种数值积分方法,下面介绍最常用的几种插值型数值积分方法。1)矩形法 定积分的几何意义是计算曲边梯形的面积,如将区间[a,b]n 等分,每个小区间上都是一个小的曲边梯形,用一个个小矩形代替这些小曲边梯形,然后把小矩形的面积加起来就近似地等于整个曲边梯形的面积,于是便求出了定积分的近似值,这就是矩形法的基本原理。 假如()f x 在[a,b]上可积,利用定积分的定义 ()() 1 lim ,n b n n k a n k b a I f x dx I I f n ξ→∞ =-=== ∑?(2-1) 可知当n 充分大时,可将n I 视为积分I 的近似值,这里k ξ是取自第k 个区间[] 1,k k x x -

MATLAB数学实验报告1

Matlab数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

数学实验与Matlab

《数学实验与Matlab》程序 周晓阳 华中科技大学数学系 我将程序按书中的顺序排列,这样便于读者利用。 本书程序均通过了调式。可直接拷贝到命令窗口运行或编制M文件运行。 如出现问题,可能是中英文标点的缘故(排版有可能使用了中文标点),请将中文标点换为英文标点试试。 实验1.矩阵运算与Matlab命令 1.1 知识要点与背景:日常矩阵及其运算

实验3.函数式-直接确定型模型 2 【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 】 ◆生成线性等分向量。

相关主题