matlab第七章答案.docx
《matlab第七章答案.docx》由会员分享,可在线阅读,更多相关《matlab第七章答案.docx(16页珍藏版)》请在冰豆网上搜索。
matlab第七章答案
matlab第七章答案
【篇一:
matlab教程2012a习题解答1-7章完整版-张志涌-北航】
class=txt>?
matlabr2012a课后习题答案全解第一章基础准备及入门
习题1及解答
?
1.数字1.5e2,1.5e3中的哪个与1500相同吗?
〖解答〗
1.5e3
?
2.请指出如下5个变量名中,哪些是合法的?
abcd-2xyz_33chana变量abcdefgh〖解答〗
2、5是合法的。
?
3.在matlab环境中,比1大的最小数是多少?
〖解答〗
1+eps
?
4.设a=-8,运行以下三条指令,问运行结果相同吗?
为什么?
w1=a^(2/3)
w2=(a^2)^(1/3)
w3=(a^(1/3))^2
〖解答〗
(1)不同。
具体如下
w1=a^(2/3)%仅求出主根
w2=(a^2)^(1/3)
w3=(a^(1/3))^2
w1=
w2=
4.0000
w3=%求出(-8)^2的主根%求出(-8)主根后再平方-2.0000+3.4641i
-2.0000+3.4641i
(2)复数的多方根的,下面是求取全部方根的两种方法:
(a)根据复数方根定义
a=-8;n=2;m=3;
ma=abs(a);aa=angle(a);
fork=1:
m%m决定循环次数
%计算各根的相角
%计算各根sa(k)=(aa+2*pi*(k-1))*n/m;endresult=(ma^(2/3)).*exp(j*sa)
result=
-2.0000+3.4641i4.0000-0.0000i-2.0000-3.4641i
(b)利用多项式r?
a?
0求根
p=[1,0,0,-a^2];
r=roots(p)
r=
-2.0000+3.4641i
-2.0000-3.4641i
4.000032
?
5.指令clear,clf,clc各有什么用处?
〖解答〗
clear清除工作空间中所有的变量。
clf清除当前图形。
clc清除命令窗口中所有显示。
?
6.以下两种说法对吗?
(1)“matlab进行数值的表达精度与
其指令窗中的数据显示精度相同。
”
(2)matlab指令窗中显示的数值有效位数不超过7位。
”
〖解答〗
(1)否;
(2)否。
?
123?
456?
,?
7.想要在matlab中产生二维数组s?
?
下面哪些指令?
?
?
?
789?
?
能实现目的?
(1)s=[1,2,3;4,5,6;7,8;9]
(2)s=[123;456;789]
(3)s=[1,2,3;4,5,6;7,8,9]
〖解答〗
前两种输入方法可以,后一种方法不行。
%整个指令在中文状态下输入
?
8.试为例1.3-5编写一个解题用的m脚本文件?
〖解答〗
直接点击新文件图标,出现m文件编辑器窗口;在该m文件编辑器中,输入例1.3-5中的全部指令;并另存为p109.m,便得到所需的脚本文件。
第2章符号运算
习题2及解答
?
/1说出以下四条指令产生的结果各属于哪种数据类型,是“双精
度”对象,还是“符号”符号对象?
3/7+0.1;sym(3/7+0.1);sym(3/7+0.1);vpa(sym(3/7+0.1))
〖目的〗
?
不能从显示形式判断数据类型,而必须依靠class指令。
〖解答〗
c1=3/7+0.1
c2=sym(3/7+0.1)
c3=sym(3/7+0.1)
c4=vpa(sym(3/7+0.1))
cs1=class(c1)
cs2=class(c2)
cs3=class(c3)
cs4=class(c4)
c1=
0.5286
c2=
37/70
c3=
0.52857142857142857142857142857143
c4=
0.52857142857142857142857142857143
cs1=
double
cs2=
sym
cs3=
sym
cs4=
sym
?
/2在不加专门指定的情况下,以下符号表达式中的哪一个变量被
认为是自由符号变量.
sym(sin(w*t)),sym(a*exp(-x)),sym(z*exp(j*th))
〖目的〗
?
理解自由符号变量的确认规则。
〖解答〗
symvar(sym(sin(w*t)),1)
ans=
w
symvar(sym(a*exp(-x)),1)
ans=
a
symvar(sym(z*exp(j*th)),1)
ans=
z
?
/3求以下两个方程的解
3
(1)试写出求三阶方程x?
44.5?
0正实根的程序。
注意:
只要正
实根,不要出现其他根。
(2)试求二阶方程x2?
ax?
a2?
0在a?
0时的根。
〖目的〗
?
体验变量限定假设的影响
〖解答〗
(1)求三阶方程x?
44.5?
0正实根
reset(symengine)
symsxpositive
solve(x^3-44.5)
ans=
(2^(2/3)*89^(1/3))/2
%确保下面操作不受前面指令运作的影响3
(2)求五阶方程x?
ax?
a?
0的实根
symsapositive
solve(x^2-a*x+a^2)
insolveat83
ans=
[emptysym]
symsxclear
symsapositive
solve(x^2-a*x+a^2)
ans=
a/2+(3^(1/2)*a*i)/2
a/2-(3^(1/2)*a*i)/2
%注意:
关于x的假设没有去除22warning:
explicitsolutioncouldnotbefound.
【篇二:
matlab习题答案】
、求下列表达式的值
(1)w=sqrt
(2)*(1+0.34245*10^(-6))
w=
1.4142
(2)a=3.5;b=5;c=-9.8;
x=(2*pi*a+(b+c)/(pi+a*b*c)-exp
(2))/(tan(b+c)+a)
x=
0.9829
(3)y=2*pi*3.32^2*((1-pi/4)*(-7.9)-(0.8333-pi/4)*3.32)
y=
-128.4271
(4)t=[2,1-3i;5,-0.65]
t=
2.00001.0000-3.0000i
5.0000-0.6500
z=1/2*exp(2*t)*log(t+sqrt(1+t^2))
z=
1.0e+004*
0.0057-0.0007i0.0049-0.0027i
1.9884-0.3696i1.7706-1.0539i
2、已知
a=[-1,5,4;0,7,8;3,61,7]
a=
-154
078
3617
b=[8,3,-1;2,5,3;-3,2,0]
b=
83-1
253
-320
(1)a+6*b
ans=
4723-2
123726
-15737
a^2-b+eye
ans=
627266
23533110
22868550
(2)a*b
ans=
-103016
-105121
125328180
a.*b
ans=
-815-4
03524
-91220
b*a
ans=
-11049
722869
3-14
(3)a/b
ans=
-0.39361.20210.0851
-0.94682.3511-0.9574
4.61703.872313.8936
b\a
ans=
-0.5106-8.6170-0.6170
0.734017.57452.5745
-0.8830-21.2128-1.2128
(4)[a,b]
ans=
-15483-1
078253
3617-320
[a([1,3],:
);b^2]
ans=
-154
3617
73371
173713
-2019
3、已知
a=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]
a=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
6.0000-9.540054.00003.1400
(1)a(find(a=10a=25))
ans=
23
10
(2)b=a(1:
3,:
)
b=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
c=a(:
1:
2)
c=
23.000010.0000
41.0000-45.0000
32.00005.0000
6.0000-9.5400
d=a(2:
4,3:
4)
d=
65.00005.0000
032.0000
54.00003.1400
e=b*c
e=
1.0e+003*
0.9141-0.2239
1.20802.7123
1.1330-0.2103
第三章实验指导
2、
(1)grade=input(请输入百分制成绩:
);
if(grade0|grade100)
class=该数不合理;
elseif(grade=90grade=100)
class=a;
elseif(grade=80grade=89)
class=b;
elseif(grade=70grade=79)
class=c;
elseif(grade=60grade=69)
class=d;
else
class=e;
end
class
请输入百分制成绩:
300
class=
该数不合理
请输入百分制成绩:
23
class=
e
(2)grade=input(请输入百分制成绩:
);
if(grade100|grade0)
class=该数不合理
else
switchfix(grade/10)
case{0,1,2,3,4,5}
class=e;
case{6}
class=d;
case{7}
class=c;
case{8}
class=b;
case{9,10}
class=a;
end
class
end
请输入百分制成绩:
23
class=
e
请输入百分制成绩:
101
class=
该数不合理
3、输入20个数,求其中最大数和最小数。
fori=1:
20
a(i)=input(pleaseinputanumble:
);
end
amax=max(a)
amin=min(a)
pleaseinputanumble:
1
pleaseinputanumble:
2
pleaseinputanumble:
3
pleaseinputanumble:
4
pleaseinputanumble:
5
pleaseinputanumble:
6
pleaseinputanumble:
7
pleaseinputanumble:
8
pleaseinputanumble:
9
pleaseinputanumble:
0
pleaseinputanumble:
12
pleaseinputanumble:
23
pleaseinputanumble:
34
pleaseinputanumble:
45
pleaseinputanumble:
56
pleaseinputanumble:
67
pleaseinputanumble:
78
pleaseinputanumble:
89
pleaseinputanumble:
90
pleaseinputanumble:
123
amax=
123
amin=
6、建立5*6矩阵,要求输出矩阵第n行元素。
a=[1,2,3,4
5,1;6,7,8,9,0,2;12,23,34,45,56,3;67,78,89,90,12,4;6,5,4,3,2,1;23,45,65,67,2,34];
n=input(pleaseinputanumble:
)
if(n5|n0)
a(5,:
),disp(fault)
else
a(n,:
)
end
pleaseinputanumble:
2
n=
2
ans=
678902
pleaseinputanumble:
6
n=
6
ans=
654321
fault
第四章实验指导
1、绘制下列曲线。
(1)x=0:
0.01:
2;
y=x-x.*x.*x/(3*2*1);
plot(x,y);
【篇三:
matlab作业答案】
>2.1实验程序:
x=[12233445566778]%逐个输入数组中的元素值
x(6)%读数组中的第6个元素
x([135])%返回数组的第1、3、5个元素构成的子数组
x(4:
end)%返回第4个元素与其后所有元素构成的子数组
x(find(x70))%返回数组中大于70的元素的值
matlab分步截屏:
创建一个有7个元素的一维数组:
直接寻访一维数组的第6个元素:
寻访一维数组的第1,3,5个元素:
(3)寻访一维数组中第4个至最后一个元素:
寻访一维数组中大于70的元素:
2.3实验程序:
a=zeros(2,5)%生成2行5列的全0数组
a(1:
10)=-4:
5%将单下标为1到10的元素分别赋值为-4到5
l=abs(a)3%判断其绝对值是否大于3,大于则l对应的位置为值1,否则为l
值为0
islogical(l)%判断l是否为逻辑数组,是逻辑数组则返回1,否则返回0
x=a(l)%x为逻辑数组l对应为1的位置的数据的列向量
matlab分步截屏:
生成数组:
寻访数组a中绝对值大于3的元素:
输出数组a中绝对值大于3的元素:
2.5实验程序:
p1=[1,0,2];%定义多项式p1(s)=s2+1
p2=[1,4];%定义多项式p2(s)=s+4
p3=[1,1];%定义多项式p3(s)=s+1
p4=conv(p1,conv(p2,p3));%定义多项式p4(s)=p1(s)p2(s)p3(s)
p5=[1011];%定义多项式p5(s)=s3+s+1
[q,r]=deconv(p4,p5);%求p4(s)/p5(s)
disp([商:
poly2str(q,s)]);
disp([余式:
poly2str(r,s)])
matlab实验截屏:
2.6实验程序:
a=[122334;455667;788990];%定义3阶数组a
p1a=poly(a);%创建方阵a的特征多项式p1a
p2a=poly2str(p1a,s)%将拟合后的p1a多项式系数转换为字符形式的特征多
项式函数p2a
matlab实验截屏:
第四章m文件和程序设计
4.2实验程序exp4_2:
x=input(请输入半径r的值:
);%将用户键入量赋给x
s=f1(x);%调用函数f1(x)计算面积s
c=f2(x);%调用函数f2(x)计算面积c
disp([圆的面积s为:
num2str(s)])%用num2str将数值变量转换为字符变量disp([圆的周长c为:
num2str(c)])
实验程序-面积函数文件f1:
functions=f1(x)
s=pi*x*x;
end
实验程序-周长函数文件f2:
functionc=f2(x)
c=2*pi*x;
end
matlab截屏:
4.3实验程序exp4_3:
sum=0;
n=input(请输入n的值:
)
fori=1:
n
sum=sum+1/i^2;
end
disp([计算结果为:
num2str(sum)])
matlab截屏:
并用disp输出带数值的文本信息%自定义函数f1(x)%自定义函数f2(x)%定义变量sum%并将用户键入量赋给变量n,并显示“请输入n的值”%i从1取到n%依次求sum的值%用num2str将数值变量转换为字符变量并用disp输出带数值的文本信息
4.5实验程序exp4_5:
sum=0;%变量sum的初值是0
n=0;%变量n的初值是0
whilesum2000%当sum值小于2000时
n=n+1;%n=n+1
sum=sum+n;%sum为n的累加和
end
disp([最大的n值为:
num2str(n-1)])%最后一次循环,sum+n后得到的sum值
大于2000,因此最后输出的最大n值应为n-1
matlab截屏:
4.6
(1)使用for循环时:
实验程序exp4_6_1:
sum=0;%定义变量sum,其初值为0
fori=0:
63%i从0取到63
sum=sum+2^i;%依次求sum的累加
end
disp([k=,num2str(sum)])
matlab截屏:
(2)使用while循环时:
实验程序exp4_6_2:
sum=0;%定义变量sum,其初值为0
i=0;%定义变量i,其初值为0
whilei=63%当i≦63时
sum=sum+2^i;%依次求sum的累加
i=i+1;