整理matlab大作业.docx
- 文档编号:28348373
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:27
- 大小:248.06KB
整理matlab大作业.docx
《整理matlab大作业.docx》由会员分享,可在线阅读,更多相关《整理matlab大作业.docx(27页珍藏版)》请在冰豆网上搜索。
整理matlab大作业
2014年春季学期
MATLAB课程考查题
一.必答题(80分)
1.如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有何区别?
(2)
答:
方法一:
在MATLAB命令窗口中输入editpath或pathtool命令或通过【File】/【SetPath】菜单,进入“设置搜索路径”对话框,通过该对话框编辑搜索路径。
方法二:
在命令窗口执行“path(path,„D:
\Study‟)”,然后通过“设置搜索路径”对话查看“D:
\Study”是否在搜索路径中。
方法三:
在命令窗口执行“addpathD:
\Study-end”,将新的目录加到整个搜索路径的末尾。
如果将end改为begin,可以将新的目录加到整个搜索路径的开始。
区别:
当前文件目录是正在运行的文件的目录,显示文件及文件夹的详细信息,且只有将文件设置为当前目录才能直接调用。
搜索路径中的文件可以来自多个不同目录,在调用时不用将其都设置为当前目录,为同时调用多个文件提供方便。
2.创建符号变量和符号表达式有哪几种方法?
(4)
答:
定义符号变量:
方法一:
sym函数,可以定义单个符号变量,调用格式为:
符号量名=sym('符号字符串');方法二,syms函数,定义多个符号变量,调用格式:
syms符号变量名1符号变量名2符号变量名3符号变量名4。
。
。
空格隔开。
定义符号表达式:
方法一:
用单引号定义符号表达式;方法二:
用sym函数定义符号表达式;方法三:
用已经定义好的符号变量组成符号表达式;
3.GUIDE提供哪些常用的控件工具,各有什么功能?
(5分)
答:
一、控件风格和外观
(1)BackgroundColor:
设置控件背景颜色,使用[RGB]或颜色定义。
(2)CData:
在控件上显示的真彩色图像,使用矩阵表示。
(3)ForegroundColor:
文本颜色。
(4)String属性:
控件上的文本,以及列表框和弹出菜单的选项。
(5)Visible:
控件是否可见。
二、对象的常规信息
(1)Enable属性:
表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。
(2)Style:
控件对象类型。
(3)Tag:
控件表示(用户定义)。
(4)TooltipString属性:
提示信息显示。
当鼠标指针位于此控件上时,显示提示信息。
(5)UserData:
用户指定数据。
(6)Position:
控件对象的尺寸和位置。
(7)Units:
设置控件的位置及大小的单位
(8)有关字体的属性,如FontAngle,FontName等。
三、控件回调函数的执行
(1)BusyAction:
处理回调函数的中断。
有两种选项:
即Cancel:
取消中断事件,queue:
排队(默认设置)。
(2)ButtonDownFcn属性:
按钮按下时的处理函数。
(3)CallBack属性:
是连接程序界面整个程序系统的实质性功能的纽带。
该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。
(4)CreateFcn:
在对象产生过程中执行的回调函数。
(5)DeleteFcn:
删除对象过程中执行的回调函数。
(6)Interruptible属性:
指定当前的回调函数在执行时是否允许中断,去执行其他的函数。
四、控件当前状态信息
(1)ListboxTop:
在列表框中显示的最顶层的字符串的索引。
(2)Max:
最大值。
(3)Min:
最小值。
(4)Value:
控件的当前值。
4.建立不同数据类型的变量:
包括双精度的数值型(numeric)、符号型(sym)、结构体(structure)、单元型(cell)、字符串型(char),函数句柄(functionhandle)、逻辑型(logical),并且采用whos列出各变量名,变量的数组维数,占用字节数,变量的类别。
(4分)
答:
pp=3.14;
b=sym('sdlfkjj');
d={[],[1];'cv',linspace(1,5,5)};
e='e';
fhandle=@sin;
g=rand(5);g(g>0)=0;
whos
NameSizeBytesClassAttributes
pp1x18double
b1x162sym
d2x2320cell
e1x612char
fhandle1x116function_handle
g5x5200double
5.求
矩阵的秩,迹,特征值和特征向量,并且对矩阵进行LU分解、QR分解及Chollesky分解(3分)。
答:
>>a=[912;563;827];
z=rank(a)
j=trace(a)
[cd]=eig(a)
[lu]=lu(a)
[qr]=qr(a)
[rrp]=chol(a)
z=
3
j=
22
c=
-0.4330-0.2543-0.1744
-0.56570.9660-0.6091
-0.70180.04720.7736
d=
13.548200
04.83030
003.6216
l=
1.000000
0.55561.00000
0.88890.20411.0000
u=
9.00001.00002.0000
05.44441.8889
004.8367
q=
-0.69030.3969-0.6050
-0.3835-0.9097-0.1592
-0.61360.12210.7801
r=
-13.0384-4.2183-6.8260
0-4.8172-1.0807
003.7733
rr=
3.00000.33330.6667
02.42671.1447
002.2903
p=
0
6.执行矩阵A和B
下列的运算:
A+5*cos(B)、A.*B、A*B、A./B、B.\A、A/B,B\A,分别解释数组运算和矩阵运算的区别。
(4分)
答:
>>A=[41220;124578;2078136];
B=[123;456;789];
A+5*cos(B)
A.*B
A*B
A./B
B.\A
A/B
B\A
ans=
6.70159.919315.0500
8.731846.418382.8009
23.769577.2725131.4443
ans=
42460
48225468
1406241224
ans=
192228264
7388731008
128415181752
ans=
4.00006.00006.6667
3.00009.000013.0000
2.85719.750015.1111
ans=
4.00006.00006.6667
3.00009.000013.0000
2.85719.750015.1111
Warning:
Matrixissingulartoworkingprecision.
ans=
NaN-InfInf
NaNNaNNaN
NaN-InfInf
Warning:
Matrixisclosetosingularorbadlyscaled.
Resultsmaybeinaccurate.RCOND=1.541976e-018.
ans=
11.333324.500065.6667
-18.6667-28.0000-93.3333
10.000014.500047.0000
区别:
一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集
●数组的运算是指数组对应元素之间的运算,也称点运算;
●矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的;
●矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算。
7.求半径为r的圆的面积和周长,分别采用脚本文件和函数文件进行编写,r值由input指令从键盘给出,数据的输出采用disp指令;并且说明脚本式文件和函数文件的特点。
(5分)
答:
脚本文件:
r=input('PleaseInputr:
\n');
A=pi*r^2;
s=2*pi*r;
disp(A);
disp(s)
PleaseInputr:
4
50.2655
25.1327
函数:
r=input('PleaseInputr:
\n');
[as]=zm(r);
disp(a);
disp(s);
PleaseInputr:
4
50.2655
25.1327
函数文件:
function[as]=zm(r)
a=r^2*pi;
s=2*pi*r;
end
区别:
脚本式M文件
函数式M文件
不接受输入参数,没有返回值。
可以接受输入参数,可以有返回值。
基于matlab基本工作空间中的数据进行操作,存储在工作空间,属于全局变量。
默认时,文件中参数的作用范围只限于函数临时工作空间内部,属于局部变量。
自动完成需要花费很多时间的多步操作时使用。
扩展MATLAB语言功能时使用。
8.级数求和:
(1)分别用 for和while循环结构编写程序求和,并且说明for和while区别;
答:
for循环:
>>ss=0;
fork=1:
64
ss=ss+1/(k*(k+1));
end
ss
ss=
0.9846
while循环:
>>ss=0;
k=1;
whilek<65
ss=ss+1/(k*(k+1));
k=k+1;
end
ss
ss=
0.9846
区别:
●for循环语句一般适用于已知到循环次数,而不知道循环运算目标的问题;
●while循环语句则一般适用于已知循环运算目标,而循环次数未知的问题;
●为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免for循环的使用。
(2)分别采用sum和symsum求和。
(5分)
答:
sum求和:
n=1:
64;
s=1./(n.*(n+1));
sum(s)
ans=
0.9846
symsum求和:
ss=sym('1/(n*(n+1))');
s=symsum(ss,1,64)
s=
64/65
9.表1给出x0,y0的一组数据,
x0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
y0
-0.4470
1.9780
3.1100
5.2500
5.0200
4.6600
4.0100
4.5800
3.4500
5.3500
9.2200
(1)分别采用3阶和11阶多项式拟合表1数据,并且分析是不是阶数越高拟合效果越好;
x0=0:
0.1:
1;
y0=[-0.4471.9783.115.255.024.664.014.583.455.359.22];
x=0:
0.001:
1;
p1=polyfit(x0,y0,3);
y1=polyval(p1,x);
p2=polyfit(x0,y0,11);
y2=polyval(p2,x);
plot(x0,y0,'p');
holdon;
plot(x,y1,'-');
plot(x,y2,'--');
z=0:
0.25:
1;
y3=interp1(x0,y0,z,'spline');
plot(z,y3,':
')
xlabel('x0');
ylabel('y0');
legend('原数据','3阶多项式拟合','11阶多项式拟合','3次样条插值');
可见,插值次数太高会使得波动太大。
(2)根据已知表1数据组,采用3次样条插值求解x=0:
0.25:
1的y值;
t=0:
0.25:
1;
y3=interp1(x,y,t,'spline')
y3=
-0.44704.28324.66003.98269.2200
(3)图示原始数据、3阶和11阶多项式拟合以及插值结果在一个图中,并标注坐标轴和图例;
见第一问
(4)说明插值和拟合的区别。
(8分)
答:
插值需要构造的函数正好通过已知数据点,拟合则不要求,只要均方差最小即可;
10.
采用左除和逆乘法求解两个方程组的解;并解释求解这两个方程的区别(5分)
答:
恰定方程:
a=[34-7-12;5-742;108-5;-65-210];
b=[4494];
x1=a\b
x2=inv(a)*b
x1=
2.28113.34002.36373.6511
x2=
2.28113.34002.36373.6511
超定方程:
a=[34-7-12;5-742;108-5;-65-210;5-271];
b=[44946];
rank(a)
x=a\b'
xx=pinv(a)*b'
ans=
4
x=
1.1331
1.3810
0.7493
0.1772
xx=
1.1331
1.3810
0.7493
0.1772
区别:
超静定方程的系数矩阵不可逆,故必须用“伪逆”函数pinv
11.求解多项式
的根,分别采用
(1)多项式求根命令roots;
p=[1211];
r=roots(p)
r=
-1.7549
-0.1226+0.7449i
-0.1226-0.7449i
(2)数值求零命令fzero;
答:
s=fzero('funxy',-2)
s=
-1.7549
(3)符号运算命令solve,并将符号变量结果转化为数值解;(5分)
symsx;
solve(x^3+2*x^2+x+1)
ans=
-1.7549
12.已知y=x^3-4*exp(x)-sin(x)/0.002,采用符号(diff)和数值微分(diff)和多项式拟合求导(polyfit,polyder),计算函数y在[-3,3]区间中的导数,并且图示这三种方法。
(5分)
答:
符号(diff):
symsx
y='x^3-4*exp(x)-sin(x)/0.002';
diff(y,x)
ans=
3*x^2-4*exp(x)-500.0*cos(x)
数值微分(diff):
>>k=linspace(-3,3,50);
y=shuzhi(x);
rr=diff(y)
rr=
3*x^2-4*exp(x)-500*cos(x)
函数shuzhi:
functionss=shuzhi(x)
ss=x.^3-4.*exp(x)-sin(x)/0.002;
end
>>x=linspace(-3,3,100);
y=x.^3-4.*exp(x)-sin(x)/0.002;
p=polyfit(x,y,3);
d=polyder(p)
d=
145.9691-7.3927-439.9788
13.求方程组
的根,分别采用数值运算fsolve和符号运算solve,数值运算的初始值为x0=[-5;-5],要求显示符号运算得到结构体的每个元素的具体数值.(5分)
答:
数值运算fsolve:
x=fsolve('dzya',[-5,-5],optimset('Display','off'))
x=
0.56710.5671
符号运算solve:
symsxy;
solve(2*x-y-exp(-x),-x+2*y-exp(-y))
ans=
x:
0.5671
y:
0.5671
14.符号矩阵
(1)简化符号矩阵然后求行列式、逆矩阵和秩;
>>f=[(4*x^2+8*x)/ylog(x)-exp(a*(x+y));33sin(x)*cos(y)-cos(x)*sin(y)];
>>[r,how]=simple(f)
r=
[(4*x*(x+2))/y,log(x)-exp(a*(x+y))]
[33,sin(x-y)]
how=
simplify
>>det(r)
ans=
(33*y*exp(a*x+a*y)+4*x^2*sin(x-y)-33*y*log(x)+8*x*sin(x-y))/y
>>inv(r)
ans=
[(y*sin(x-y))/(33*y*exp(a*(x+y))+4*x^2*sin(x-y)-33*y*log(x)+8*x*sin(x-y)),(y*(exp(a*(x+y))-log(x)))/(33*y*exp(a*(x+y))+4*x^2*sin(x-y)-33*y*log(x)+8*x*sin(x-y))]
[-(33*y)/(33*y*exp(a*(x+y))+4*x^2*sin(x-y)-33*y*log(x)+8*x*sin(x-y)),(4*x*(x+2))/(33*y*exp(a*(x+y))+4*x^2*sin(x-y)-33*y*log(x)+8*x*sin(x-y))]
>>rank(r)
ans=
2
(2)
>>jx=int(r)
jx=
[(4*x^2*(x+3))/(3*y),x*(log(x)-1)-exp(a*x+a*y)/a]
[33*x,-cos(x-y)]
>>jy=int(r,y,2,9)
jy=
[4*x*log(9/2)*(x+2),7*log(x)+(exp(a*x)*(exp(2*a)-exp(9*a)))/a]
[231,cos(x-9)-cos(2-x)]
jxy=int(r,x,y)
j=
[-(4*(x^3+3*x^2-y^3-3*y^2))/(3*y),
y*(log(y)-1)-x*(log(x)-1)+(exp(a*x+a*y)-exp(2*a*y))/a]
[33*y-33*x,cos(x-y)-1]
(3)
(10分)
>>dx=diff(r,x)
dx=
[(4*(x+2))/y+(4*x)/y,1/x-a*exp(a*(x+y))]
[0,cos(x-y)]
>>dy2=diff(r,y,2)
dy2=
[(8*x*(x+2))/y^3,-a^2*exp(a*(x+y))]
[0,-sin(x-y)]
>>dxy=diff(dx,y)
dxy=
[-(4*(x+2))/y^2-(4*x)/y^2,-a^2*exp(a*(x+y))]
[0,sin(x-y)]
15.椭圆的隐式方程为:
,它的参数方程可以表达为:
x=a*cos(
)y=b*sin(
),其中a=5,b=3;请用subplot在三个子图区域用不同的方法绘制椭圆曲线,要求为每幅子图形加上标题title和坐标轴标注,其中
(1)采用ezplot分别绘制椭圆隐式和参数方程在两个子图区域;
(2)当a值由1变化到5时,采用plot绘制5条椭圆曲线在另一个子图区域中,t在[-2π,2π]范围,使用linspace命令取椭圆100个点,使用legend命令来标明每一条对应的a值曲线的图例。
(10分)
答:
subplot(131);
ezplot('y^2/9+x^2/25-1');
title('Òþʽ');
xlabel('x');
ylabel('y');
symst;
subplot(132);
ezplot('5*sin(t)',[0,2*pi]);
holdon;
ezplot('3*cos(t)',[0,2*pi]);
axis([02*pi-66]);
xlabel('\theta');
ylabel('xy');
title('²ÎÊý·½³Ì');
subplot(133);
title('a´Ó1ÖÁ5');
xlabel('x');
ylabel('y');
a=1;
t=linspace(-2*pi,2*pi,100);
x=a.*cos(t);
y=3.*sin(t);
plot(x,y,'-');
holdon;
a=2;
x=a.*cos(t);
y=3.*sin(t);
plot(x,y,'--');
a=3;
x=a.*cos(t);
y=3.*sin(t);
plot(x,y,':
');
a=4;
x=a.*cos(t);
y=3.*sin(t);
plot(x,y,'-.');
a=5;
x=a.*cos(t);
y=3.*sin(t);
plot(x,y,'p');
legend('a=1','a=2','a=3','a=4','a=5');
二、选答题(必须选4道题,每题5分,总计20分)
1.符号运算
(1)分解因式
>>symsx
y=x^4-5*x^3+5*x^2+5*x-6;
yy=factor(y)
yy=
(x-1)*(x-2)*(x-3)*(x+1)
>>symsxyz;
f=x^2+y^2+z^2+2*(x*y+y*z+z*x);
ff=factor(f)
ff=
(x+y+z)^2
(2)化简表达式
>>symsab;
f=sqrt((a+sqrt(a^2-b))/2)+sqrt((a-sqrt(a^2-b))/2);
ff=simplify(f)
ff=
(2^(1/2)*((a+(a^2-b)^(1/2))^(1/2)+(a-(a^2-b)^(1/2))^(1/2)))/2
>>symsxy;
z=sin(x)*cos(y)-cos(x)*sin(y);
ff=simplify(z)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 matlab 作业