在MATLAB帮助文件中查找有关title的使用方法文档格式.docx
《在MATLAB帮助文件中查找有关title的使用方法文档格式.docx》由会员分享,可在线阅读,更多相关《在MATLAB帮助文件中查找有关title的使用方法文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
提取A矩阵中位于第1,3,6行且位于第2,4,6行的子矩阵E。
3)将E矩阵按行从上到下的次序首位相接生成“一维长行”数组。
clear,rand('
1);
A=rand(10,10);
A(8)
B=A(:
5)
D=A(2:
6,3:
7)
E=A([1,3,6],[2,4,6])
E1=E'
;
E2=E1(:
)'
3.在时间区间[0,10]中,绘制
曲线,要求采用数组运算法编写程序绘图。
0.1:
10;
y=1-exp(-0.5*t).*cos(2*t);
plot(t,y)
ylabel('
y(t)'
4.用间距为0.1的水平线和垂直线均匀分割
的矩形域,在所有水平线和垂直线交点上计算函数
,并图示。
要求采用向量化编程。
x=-5:
5;
y=-2.5:
2.5;
[X,Y]=meshgrid(x,y);
Z=sin(abs(X.*Y));
surf(X,Y,Z);
shadinginterp;
x'
zlabel('
z'
1.运行clear,rand('
1),A=rand(3,3)
1)编写指令,获得一个对角矩阵B,其相应元素由A的对角元素构成
2)编写指令,获得一个矩阵C,其对角元素全部为零,其余元素与A对应元素相同。
(使用diag函数)
1),A=rand(3,3);
B=diag(diag(A))
C=A.*(~eye(3))
1),A=rand(3,5)生成二维数组A,编写指令对A矩阵进行以下操作,记录相应的结果。
1)对A矩阵旋转180度,保存为B;
2)将A矩阵排成5行3列,保存为C;
3)将A矩阵删除第2及4列,保存为D;
4)求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。
(使用find和sub2ind函数)
1),A=rand(3,5);
B=rot90(A,2)
C=reshape(A,5,3)
D=A;
D(:
[24])=[]
[m,n]=find(A>
0.5)
L=sub2ind(size(A),m,n)
3.运行以下指令
x=-3*pi:
pi/15:
3*pi;
y=x;
[X,Y]=meshgrid(x,y);
warningoff;
Z=sin(X).*sin(Y)./X./Y;
1)记录[X,Y],理解meshgrid函数的意义。
2)继续编写指令求出矩阵Z中有多少个“非数”数据。
3)用指令surf(X,Y,Z);
shadinginterp观察所绘图形。
4)写出绘制相应“无裂缝”图形的全部指令,并保存为.m文件。
x=-3*pi:
%x=x+(x==0)*eps;
y=x;
Z=sin(X).*sin(Y)./X./Y;
sum(sum(isnan(Z)))
shadinginterp
1.给定一个函数
,利用diff及gradient函数近似求
的导函数
,并将函数
和其导函数曲线绘制在一个图中,同时给出两种方法得到的导函数曲线的细节图,并进行对比。
clear;
y=exp(-t.^2);
dif=diff(y)/0.1;
grad=gradient(y)/0.1;
subplot(1,2,1);
plot(t(1:
end-1),dif,t,grad);
legend('
dfdt_{diff}'
dfdt_{gradient}'
subplot(1,2,2);
plot(t(end-10:
end-1),dif(end-9:
end),'
.k'
t(end-9:
end),grad(end-9:
or'
2.利用sum、trapz、及quad函数求
,其中
与第1题中相同。
记录结果,要求quad的计算结果达到绝对精度为10-9。
观察各函数计算结果之间的差异。
formatlong;
s1=sum(y)*0.1
s2=trapz(t,y)
quad('
exp(-t.^2)'
0,5,1e-9)
3.利用函数cumsum和cumtrapz求
将两者计算结果及它们的误差绘制在同一个图中,同时给出误差的细节图。
在以上题目中要求在图中为曲线添加相应的图例,原函数曲线用细线,其他曲线用粗线。
s1=cumsum(y)*0.1;
s2=cumtrapz(t,y);
holdon;
plot(t,s1,'
-k'
plot(t,s2,'
-r'
plot(t,s1-s2,'
-g'
Ô
º
¯
Ê
ý
'
cumsum»
·
Ö
cumtrapz»
Î
ó
²
î
axis([0,5,0.04,0.11])
1.设
,
,求解
。
绘制
的曲线,绘出
与
之间关系的相平面图。
给出
的具体数值。
t范围限制在[02.5]。
0.01:
y0=[1;
1];
[tt,yy]=ode45(@DyDt,t,y0);
plot(tt,yy(:
1));
figure;
plot(yy(:
1),yy(:
2));
dydt'
functionydot=DyDt(t,y)
ydot=[y
(2);
-2*y
(1)+3*y
(2)+1];
end
2.求以下方程组的解1)
2)
A=[1-11/21/2;
111-1;
11-1/41;
-81-11];
b=[01001]'
rank(A)
rank([A,b])
B=A\b;
A=[-111-1;
11-11;
1-1/4-11;
-8-111];
b=[130.5-3.5]'
C=null(A);
A*(rand
(1)*C+B)
b
1.求函数
在区间[-5,5]中的最小值点。
t=-5:
f=(sin(5*t)).^2.*exp(0.06*t.^2)-1.5*t.*cos(2*t)+1.8*(abs(t+0.5));
plot(t,f)
f1=@(t)((sin(5*t)).^2.*exp(0.06*t.^2)-1.5*t.*cos(2*t)+1.8*(abs(t+0.5)));
[sx,sfval,sexit,soutput]=fminbnd(f1,-5,5)
2.求
的实数解。
f=-0.5+t-10*exp(-0.2*t).*abs(sin(sin(t)));
f1=@(t)(-0.5+t-10*exp(-0.2*t).*abs(sin(sin(t))));
%[x,fval]=fsolve(f1,1)%Ã
»
Ó
Ð
Õ
Ò
µ
½
[x,fval]=fsolve(f1,2)%Õ
3.使用字符串、内联对象、匿名函数或函数文件的句柄四种方式求二元函数方程组
的数值解clearall
x0=[0.50.5]
[x,fval]=fsolve('
[sin(x
(1)-x
(2)),cos(x
(1)+x
(2))]'
x0)
f=inline('
[x,fval]=fsolve(f,x0)
f=@(x)([sin(x
(1)-x
(2)),cos(x
(1)+x
(2))]);
[x,fval]=fsolve(@myfun,x0)
functionf=myfun(x)
f=[sin(x
(1)-x
(2)),cos(x
(1)+x
(2))];
1.假定某窑工艺瓷器的烧制成品合格率为0.157,现用该窑烧制100件瓷器,请画出合格产品数的概率分布曲线。
N=100;
p=0.157;
k=0:
N;
pdf=binopdf(k,N,p);
plot(k,pdf,'
.-k'
k'
P'
2.产生均值为4,标准差为2的(10000*1)正态分布随机数组a,分别用hist和histfit绘制该数组的频数直方图,观察两张图的差异。
除histfit上的拟合红线外,如何使这两个指令绘出相同的频率直方图。
N=10000;
Mu=4;
Sigma=2;
%x=randn(N,1)
%y=Mu+Sigma*x;
y=normrnd(Mu,Sigma,1,N);
figure();
hist(y,100);
histfit(y);
3.根据文件prob_data418.mat的数据,求出这组数据的5阶拟合多项式。
根据求得的多项式函数计算y值,并与实测y值比较,统计两者之间误差的均值及方差。
s=importdata('
prob_data418.mat'
x=s.x;
y=s.y;
P=polyfit(x,y,5)
yy=polyval(P,x);
plot(x,y,'
.r'
x,yy,'
err=abs(y-yy);
em=mean(err)
ev=var(err)
4.有理分式
,求该分式的商多项式
和余多项式
N=conv([3010],[1000.5]);
D=conv([12-1],[5201]);
[Qr]=deconv(N,D)
1.已知函数
试在同一张图上绘出
不同取值时的各条曲线,时间区间为
要求
的各条曲线用蓝色,
的用红色,
的用黑色,且线较粗。
及
的两条曲线添加text标志。
如图所示。
18;
figure
(1);
forz=0.2:
0.2:
1.4
b=sqrt(abs(1-z^2));
if(z<
1)&
(z>
=0)
y=1/b*exp(-z*t).*sin(b*t);
plot(t,y,'
-b'
elseifz>
1
y=1/2/b*(exp(-(z-b)*t)-exp(-(z+b)*t));
elseifz==1
y=t.*exp(-t);
3);
end
text(2.5,0.6,'
\zeta=0.2'
text(0.5,0.15,'
\zeta=1.4'
text(10,0.7,'
\Delta\zeta=0.2'
gridon;
boxon;
axis([018-0.40.8])
2.使用极坐标绘图指令polar绘制表达式
对应的心形图,如图所示。
the=0:
pi/100:
P=1-cos(the);
h=polar(the,P);
%·
Ø
Ï
ß
Ä
¾
ä
±
ú
set(h,'
3)
P=1-cos(\theta)'
3.使用双纵坐标在同一张图上绘出函数
及其积分
,要求标注横、纵坐标,两条曲线均使用plot绘图指令,曲线宽度为3号。
4;
y=x.*sin(x);
s=cumtrapz(x,y);
[AX,H1,H2]=plotyy(x,y,x,s)%AX×
ø
ê
á
£
¬
H1º
Í
H2Á
¸
ö
æ
Á
¶
set(get(AX
(1),'
Ylabel'
),'
String'
\fontsize{14}y(x)=xsinx'
%set(AX
(1),'
FontSize'
20,'
FontAngle'
italic'
set(get(AX
(2),'
\fontsize{14}\int_0^xy(t)dt'
set(H1,'
set(H2,'
1.绘制
的三维曲线如图所示。
要求曲线为绿色实线,坐标轴字体为斜体,字体大小适当。
x=sin(t);
y=cos(t);
z=t;
plot3(x,y,z,'
g'
%h=get(gcf,'
CurrentAxes'
set(gca,'
14,'
\fontsize{24}x'
\fontsize{24}y'
\fontsize{24}z'
2.在区域
,绘制
的三维(透视)网格曲面,如图所示。
要求,透明度设置为0.5,坐标轴范围与图示一致。
x=-3:
3;
Z=4*X.*exp(-X.^2-Y.^2);
surfc(X,Y,Z);
colormap(cool);
%xlim([-33]);
%ylim([-33])
axis([-33-33-22]);
XTick'
-3:
3);
%×
Ì
å
É
è
Ã
º
labelÆ
ð
×
÷
alpha(0.5)
1.创建一个名为showfig的函数文件,该函数文件根据输入宗量不同情况显示出不同的图形。
其中绘图部分由函数文件中定义的子函数figplot完成。
具体要求为:
没有输入量时,画出单位圆;
输入量为大于2的自然数N时,绘制正N边形,图名反映多边形的边数;
输入量是“非自然数”时,提示“输入输错,请出入一个自然数”。
在命令窗口运行showfig函数,其中参量自行设定,给出运行结果。
2.showfig;
showfig(3);
showfig(6);
showfig(3.5);
functionshowfig(N)
switchnargin
case0
flag=0;
figplot(flag);
case1
if(N>
2)&
(floor(N)==N)
flag=1;
figplot(flag,N);
else
error('
输入出错'
end
otherwise
functionfigplot(flag,N)
ifflag==0
N=100;
end;
theta=pi/2:
2*pi/N:
5/2*pi;
x=cos(theta);
y=sin(theta);
plot(x,y,'
axisoff;
axisequal;
3.用指令fminbnd求
在
附近的最小值。
要求分别写出fminbnd的第一个输入量使用字符串及匿名函数的的相关程序,观察两种方式所得结果是否一致。
4.x=-3:
5.y=-exp(-x).*abs(sin(cos(x)));
6.plot(x,y);
7.[xn0,fval,exitflag,output]=fminbnd('
-exp(-x)*abs(sin(cos(x)))'
-1.5,-0.5)
8.y1=@(x)(-exp(-x)*abs(sin(cos(x))))
9.[xn0,fval]=fminbnd(y1,-1.5,-0.5)
10.%y1=inline('
11.%[xn0,fval]=fminbnd(y1,-1.5,-0.5)
12.
3.在matlab的\toolbox\matlab\elmat\private文件夹下有一个“烟圈矩阵”发生函数smoke.m。
运行指令smoke(3,0),将生成一个三阶伪特征根矩阵:
当前目录为E:
\班级,它与“烟圈矩阵”所在路径不同,请问如何利用函数句柄调用smoke.m函数,产生3阶伪特征根矩阵。
写出相应的程序及操作步骤。
输入指令如下:
smoke(3,0,'
double'
SM=@smoke;
A=SM(3,0,'
)
步骤:
(1)设置当前目录为:
\toolbox\matlab\elmat\private
(2)输入smoke(3,0,'
)获得结果,再输入SM=@smoke;
创建smoke.的函数句柄
(3)回到当前目录;
E:
\班级.输入A=SM(3,0,'
)即可