第一章作业
1、安装MATLAB软件。
2、学习和掌握MATLAB功能演示,掌握MATLAB帮助系统的运用。
3、绘制正弦函数曲线。时间变量t从0到2*pi,输出正弦变量x的幅度为2V频率为1Hz初相位为0。(注意步长的选择要满足抽样定理,最后绘制的正弦波要美观)

第二章 作业1
2.1 把34.76、-56.9887和1234.567转换成无符号8位整型,结果是什么?截图说明。分析原因。
答案:>> a=uint8(34.76),b=uint8(-56.9887),c=uint8(1234.567)

a =

35

b =

0

c =

255

原因:uint8函数把输入的数值变成0到28-1取值范围内的无符号8位整型,超出此范围的数变为0或255.
2.2 在命令窗口运行“a=double(45678.23579)”和 “b=single(45678.23579)”结果有什么区别?在内存中有什么区别?截图说明。分析原因。
答案:>> a=double(45678.23579),b=single(45678.23579)

a =

4.5678e+04

b =

4.5678e+04
分析:结果没有区别,只是单精度型实数在内存中占用4个字节,双精度型实数在内存中占用8个字节,双精度型的数据精度更高。
2.3 在命令窗口运行“a=25.36”,回车后显示什么?工作空间中变量a是怎样的存在?截图说明。再在命令窗口运行“format hex;a”回车后显示什么?工作空间中变量a是怎样的存在?截图说明。分析原因。Matlab默认的输出格式是什么?
答案:

注意:format命令只影响数据输出格式,而不影响数据的计算和存储。Matlab默认的输出格式是format short。
2.4 在命令窗口用直接输入法输入矩阵“a=[1,2,3,4,5;9,8,7,6,5]”和“b=[1,2,3;4,5,6]”后,能不能利用已建好的a矩阵和b矩阵建立更大的矩阵?比如c=[a,b;b,a]?截图说明。能不能利用已建好的a矩阵和c矩阵建立更大的矩阵?比如d=[a,c;c,a]?截图说明。分析原因。
答案: a=[1,2,3,4,5;9,8,7,6,5],b=[1,2,3;4,5,6]

a =

 1     2     3     4     5
9 8 7 6 5

b =

 1     2     3
4 5 6

c=[a,b;b,a]

c =

 1     2     3     4     5     1     2     3
9 8 7 6 5 4 5 6
1 2 3 1 2 3 4 5
4 5 6 9 8 7 6 5

d=[a,c;c,a]
Error using horzcat
CAT arguments dimensions are not consistent.
分析:用已建好的矩阵建立更大的矩阵时需注意行数和列数的维数问题。
2.5 用冒号表达式产生一个行向量a,它的初始值为0, 终止值为2pi,步长为0.1,用工作空间查看a,它的第一个值是什么?最后一个值是什么?截图说明。用linspace函数产生行向量b,它的初始值为0, 终止值为2pi,元素总数是63,用工作空间查看a,它的第一个值是什么?最后一个值是什么?截图说明。如果想用这2种方法产生同样的矢量该怎么写命令语句?
答案:

分析:用冒号表达式产生的行向量a第一个值是0,最后一个值是6.2;用linspace函数产生的行向量第一个值为0, 最后一个值是6.2832。如果想用这2种方法产生同样的矢量,把用冒号表达式产生行向量a的语句改为“ a=0:2pi/62:2pi;”即可。(我补充的linspace最后一个值一定是范围最大值 冒号表达式最后一个值不一定是范围最大值 )

2.6 在命令窗口输入矩阵“a=[1,2,3,4,5;9,8,7,6,5]”,分别通过采用矩阵元素的下标和采用矩阵元素的序号来引用元素,把元素9变成-300,截图显示。分析序号(Index)与下标(Subscript )的关系。
答案:

分析:序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。
2.7 100X100的矩阵a,它的第50行30列个元素对应的序号是什么?它的序号是89的元素对应的下标是什么?用命令语句给出答案。
答案:100X100的矩阵a,它的第50行30列个元素对应的序号是2950,它的序号是89的元素对应的下标是[89,1]。
2.8 以下变量名正确的有:A、1_23 H5、_e43E、落叶_a
答案:A (以字母开头,后接字母数字或下划线)
2.9 在命令窗口运行“x=sqrt(7)-2i”,回车后显示的结果是?在命令窗口运行“sqrt(7)-2i”,回车后的显示结果是什么?在命令窗口运行“sqrt(7)-2i;”,回车后的显示结果是什么?
答案:在命令窗口运行“x=sqrt(7)-2i”,回车后显示的结果是“x =2.6458 - 2.0000i”;在命令窗口运行“sqrt(7)-2i”,回车后显示的结果是“ans =2.6458 - 2.0000i”;在命令窗口运行“sqrt(7)-2i;”,回车后的结果是什么也不显示。
2.10 exp函数中e的值是多少?在命令窗口运行“a=exp(5),b=exp([4 5]),c=exp([1 2i;0 -1])”的结果是什么?Help一下exp函数,看看当它的自变量分别为标量、矢量、方阵时,结果怎么计算?当它的自变量分别实数和复数时,结果怎么计算?
答案:e=2.7183;在命令窗口运行“a=exp(5),b=exp([4 5]),c=exp([1 2i;0 -1])”的结果是a = 148.4132;b = 54.5982 148.4132;c = 2.7183 -0.4161 + 0.9093i
1.0000 0.3679

Y = exp(X) returns the exponential for each element of X. exp operates element-wise on arrays. For complex x + i * y, exp returns the complex exponential ez = ex(cos y + i sin y). Use expm for matrix exponentials.
2.11 在命令窗口运行“a=log(5),b=log10([4 5]),c=log2([1 2i;0 -1])”的结果是什么?
答案:在命令窗口运行“a=log(5),b=log10([4 5]),c=log2([1 2i;0 -1])”的结果是“a = 1.6094;
b = 0.6021 0.6990;c =

    0             1.0000 + 2.2662i
-Inf 0 + 4.5324i”。

2.12 在命令窗口运行“a=pow2(5),b=pow2([4 5]),c=pow2([1 2i;0 -1])”的结果是什么?
答案:在命令窗口运行“a=pow2(5),b=pow2([4 5]),c=pow2([1 2i;0 -1])”的结果是“a = 32;b = 16 32;c = 2.0000 0.1835 + 0.9830i
1.0000 0.5000 ”。
2.13 在命令窗口运行“a=abs(-4.5),b=abs(6+6i)”的结果是什么?
答案:在命令窗口运行“a=abs(-4.5),b=abs(6+6i)”的结果是“a = 4.5000;b =8.4853”。
2.14 在命令窗口运行
“a=rem(0,3),b=rem(1,3),c=rem(2,3),d=rem(3,3),e=rem(4,3),f=rem(10000,3)”的结果是什么?
答案:在命令窗口运行
“a=rem(0,3),b=rem(1,3),c=rem(2,3),d=rem(3,3),e=rem(4,3),f=rem(10000,3)”的结果是“a = 0;b = 1;c = 2;d = 0;e = 1;f = 1;”。
2.15 fix、floor、ceil、round都是取整函数,他们有什么区别?在命令窗口运行“fix([-pi/2, -1 .4,0,1.4,pi/2]) ;floor([-pi/2, -1 .4,0,1.4,pi/2]) ;ceil([-pi/2, -1 .4,0,1.4,pi/2]) ;round([-pi/2, -1 .4,0,1.4,pi/2]) ”,结果是什么?
答案:fix是向0取整、floor是向负无穷取整、ceil向正无穷取整、round是四舍五入取整;在命令窗口运行“fix([-pi/2, -1 .4,0,1.4,pi/2]) ;floor([-pi/2, -1 .4,0,1.4,pi/2]) ;ceil([-pi/2, -1 .4,0,1.4,pi/2]) ;round([-pi/2, -1 .4,0,1.4,pi/2]) ”,结果是
-1 -1 0 0 1 1
-2 -1 0 0 1 1
-1 -1 1 0 2 2
-2 -1 0 0 1 2
2.16 在命令窗口运行”[1 2 ; 3 4]+[-5 6; 7 8]”的结果是什么?在命令窗口运行”[1 2 ; 3 4]-[-5 6; 7 8]”的结果是什么?在命令窗口运行”[1 2 0 ; 3 4 5]+[-5 6; 7 8]”的结果是什么?
答案:

2.17 在命令窗口运行”[1 2 ; 3 4][-5 6; 7 8]”的结果是什么?在命令窗口运行”[1 2 0 ; 3 4 5]’+[-5 6; 7 8]”的结果是什么?在命令窗口运行”[1 2 0 ; 3 4 5][-5 6; 7 8]”的结果是什么?
答案:
2.18 在命令窗口运行”a=2/8,b=8\2”的结果是什么?

在命令窗口运行”[1 2 ; 3 4]/[-5 6; 7 8]”的结果是什么?
答案:
2.19在命令窗口输入“P=rem([0,2,3,5000],3)==0”的结果是什么?

第三章作业
3.1 产生一个100X3的全零矩阵a,要求它在命令窗口不显示的语句是什么?产生一个100列的全1行矢量b,要求它在命令窗口不显示的语句是什么?产生一个4X3的单位矩阵c,要求它在命令窗口显示的语句是什么?显示结果截图。
答案:产生一个100X3的全零矩阵a,要求它在命令窗口不显示的语句是“a=zeros(100,3);”产生一个100列的全1行矢量b,要求它在命令窗口不显示的语句是“ b=ones(1,100);”,产生一个4X3的单位矩阵c,要求它在命令窗口显示的语句是“ c=eye(4,3)”,显示结果是c =

 1     0     0
0 1 0
0 0 1
0 0 0。

3.2 产生0~1区间均匀分布的4阶随机矩阵a,要求它在命令窗口显示的语句是什么?显示结果截图,用上键重新调用这条语句,显示结果截图,两次运行结果一样吗?为什么?
答案:产生0~1区间均匀分布的4阶随机矩阵a,要求它在命令窗口显示的语句是“ a=rand(4)”,显示结果
a =
0.9575 0.9572 0.4218 0.6557
0.9649 0.4854 0.9157 0.0357
0.1576 0.8003 0.7922 0.8491
0.9706 0.1419 0.9595 0.9340 ,用上键重新调用这条语句,显示结果
a =
0.6787 0.6555 0.2769 0.6948
0.7577 0.1712 0.0462 0.3171
0.7431 0.7060 0.0971 0.9502
0.3922 0.0318 0.8235 0.0344 ,两次运行结果不一样,因为rand产生的是随机矩阵。
3.3 产生-3.4~10区间均匀分布的4X3随机矩阵a,要求它在命令窗口显示的语句是什么?显示结果截图,产生100~999区间均匀分布的4000X3随机整数矩阵b,要求它在命令窗口不显示的语句是什么?取整时采用fix、ceil、round、floor对概率密度的均匀分布有无影响?取整时最好采用哪个函数?
答案:产生在任意[a,b]区间上均匀分布的随机数,只需用yi=a+(b-a)*rand(nxm),所以产生-3.4~10区间均匀分布的4X3随机矩阵a,要求它在命令窗口显示的语句是 “a=-3.4+(10+3.4)rand(4,3)”,显示结果截图a =
5.3783 9.4606 6.6670
-1.2210 1.1612 0.0183
-1.8054 4.4426 3.3798
3.2781 -0.4009 5.9676 ,产生100~999区间均匀分布的4000X3随机整数矩阵b,要求它在命令窗口不显示的语句是“b=round(100+899
rand(4,3));”取整时采用fix、ceil、round、floor对概率密度的均匀分布有影响,取整时采用round对概率密度的均匀分布没有影响。取整时最好采用round函数。
3.4 产生均值为0、方差为1的5阶正态分布随机矩阵a,要求它在命令窗口显示的语句是什么?显示结果截图,用上键重新调用这条语句,显示结果截图,两次运行结果一样吗?为什么?产生的随机矩阵元素为0的概率大吗?产生的随机矩阵元素趋近于0的概率大吗?
答案:产生均值为0、方差为1的5阶正态分布随机矩阵a,要求它在命令窗口显示的语句是“a=randn(5)”,显示结果a =
-0.2437 0.7223 -1.9330 0.1001 0.7394
0.2157 2.5855 -0.4390 -0.5445 1.7119
-1.1658 -0.6669 -1.7947 0.3035 -0.1941
-1.1480 0.1873 0.8404 -0.6003 -2.1384
0.1049 -0.0825 -0.8880 0.4900 -0.8396 ,用上键重新调用这条语句,显示结果“a =
1.3546 -1.9609 1.3790 -0.2779 -1.5771
-1.0722 -0.1977 -1.0582 0.7015 0.5080
0.9610 -1.2078 -0.4686 -2.0518 0.2820
0.1240 2.9080 -0.2725 -0.3538 0.0335
1.4367 0.8252 1.0984 -0.8236 -1.3337” ,两次运行结果不一样,因为randn产生的是随机矩阵。产生的随机矩阵元素为0的概率不大,产生的随机矩阵元素趋近于0的概率很大。
3.5 产生均值为0.6、方差为0.1的4x6正态分布随机矩阵a,要求它在命令窗口显示的语句是什么?显示结果截图。产生均值为-0.6、方差为5、正态分布的4000X3随机整数矩阵b,要求它在命令窗口不显示的语句是什么?取整时采用fix、ceil、round、floor对概率密度的正态分布有无影响?取整时最好采用哪个函数?
答案:产生均值为μ、方差为σ2的随机数,可用yi=μ+σrandn(nxm),所以产生均值为0.6、方差为0.1的4x6正态分布随机矩阵a,要求它在命令窗口显示的语句是“ a=0.6+sqrt(0.1)*randn(4,6)”,显示结果a =
0.2458 0.2025 0.1788 0.7238 0.4494 0.3316
1.3988 0.3263 -0.1368 0.7428 0.8726 0.4941
1.1235 0.5442 0.1418 0.5588 0.1694 0.7748
0.6973 0.8503 0.7055 0.6581 0.7439 0.9286。产生均值为-0.6、方差为5、正态分布的4000X3随机整数矩阵b,要求它在命令窗口不显示的语句是“b=round(-0.6+sqrt(5)*randn(4000,3));”,取整时采用fix、ceil、round、floor对概率密度的正态分布有影响,取整时最好采用round函数。
3.6 产生3阶魔方矩阵a,要求它在命令窗口显示的语句是什么?计算它的每行、每列及两条对角线上的元素和是多少?语句怎么写?用上键重新调用这条语句,两次运行结果一样吗?
答案:产生3阶魔方矩阵a,要求它在命令窗口显示的语句是“ a=magic(3)”,显示结果截图。显示结果a =
8 1 6
3 5 7
4 9 2 ,它的每行、每列及两条对角线上的元素和是15,语句“b=a.’;sum_h=sum(b);sum_l=sum(a);sum_d1=a(1,1)+a(2,2)+a(3,3);sum_d2=a(3,1)+a(2,2)+a(1,3);”,用上键重新调用这条语句,两次运行结果一样。

3.7 产生2阶魔方矩阵a,计算它的每行、每列及两条对角线上的元素和是多少?语句怎么写?显示结果截图。分析结果。
答案:产生2阶魔方矩阵a,计算它的每行、每列及两条对角线上的元素和语句是“ a=magic(2),b=a.’,sum_h=sum(b),sum_l=sum(a),sum_d1=a(1,1)+a(2,2),sum_d2=a(2,1)+a(1,2)”,显示结果a = 1 3
4 2 ,b = 1 4
3 2,sum_h = 4 6,sum_l = 5 5,sum_d1 = 3,sum_d2 = 7。
结果分析:不符合魔方矩阵其每行、每列及两条对角线上的元素和都相等的性质,magic函数的要求是n>2。
3.8 将80~95等16个数填入一个4行4列的表格中,要求它的每行每列及对角线的和相等。计算它的每行每列及对角线的和。显示结果截图。
答案:将80~95等16个数填入一个4行4列的表格中的语句是“a=79+magic(4)”,显示结果a = 95 81 82 92s
84 90 89 87
88 86 85 91
83 93 94 80 ,计算它的每行每列及对角线的和的语句是“b=a.’;sum_h=sum(b),sum_l=sum(a),sum_d1=a(1,1)+a(2,2)+a(3,3)+a(4,4)”,显示结果“sum_h =
350 350 350 350,sum_l = 350 350 350 350,sum_d1 = 350”。
3.9 指定一个向量a=[-3,40,6,2,4],生成以向量a为基础向量的范得蒙矩阵的语句是什么?显示结果截图。指定一个向量a=[-3,40,0.6,2,4],生成以向量a为基础向量的范得蒙矩阵的语句是什么?显示结果截图。分析结果。
答案:指定一个向量a=[-3,40,6,2,4],生成以向量a为基础向量的范得蒙矩阵的语句是“ a=[-3,40,6,2,4]; A=vander(a.’)”,显示结果A =
81 -27 9 -3 1
2560000 64000 1600 40 1
1296 216 36 6 1
16 8 4 2 1
256 64 16 4 1。指定一个向量a=[-3,40,0.6,2,4],生成以向量a为基础向量的范得蒙矩阵的语句是“a=[-3,40,0.6,2,4]; A=vander(a)”显示结果A = 1.0e+06 *
0.0001 -0.0000 0.0000 -0.0000 0.0000
2.5600 0.0640 0.0016 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000
0.0003 0.0001 0.0000 0.0000 0.0000。
结果分析:生成范得蒙矩阵的vander函数并不是对任意指定向量都可以实现的。

3.10 求4阶希尔伯特矩阵H及其逆矩阵h的语句是什么?显示结果截图。改变4阶希尔伯特矩阵H第四行第四列的值为1/7.0005,使用一般方法求它的逆矩阵a,语句是什么?显示结果截图。(rat:近似有理数)
答案:求4阶希尔伯特矩阵及其逆矩阵的语句是“ format rat;H=hilb(4),h=invhilb(4)”,显示结果H =
16 -120 240 -140
-120 1200 -2700 1680
240 -2700 6480 -4200
-140 1680 -4200 2800 ,
h =
16 -120 240 -140
-120 1200 -2700 1680
240 -2700 6480 -4200
-140 1680 -4200 2800 。改变4阶希尔伯特矩阵H第四行第四列的值为1/7.0005,使用一般方法求它的逆矩阵a,语句是“ H(4,4)=1/7.0005, a=inv(H)”,显示结果H =
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
1/4 1/5 1/6 2000/14001 ,
a =
551/34 -39313/321 30772/125 -28247/196
-39313/321 38119/31 -24967/9 46694/27
30772/125 -24967/9 46657/7 -108088/25
-28247/196 46694/27 -108088/25 74941/26 。
3.11 求多项式的x3-7x+6的伴随矩阵a的语句是什么?显示结果截图。求a的特征根。求多项式的4x3-17x2+6x-56的伴随矩阵b的语句是什么?显示结果截图。求b的特征根。分析多项式的系数向量和伴随矩阵的关系。

答案:求多项式的x3-7x+6的伴随矩阵a的语句是“ p=[1,0,-7,6];a=compan§”,显示结果a = 0 7 -6
1 0 0
0 1 0 ,求a的特征根的语句是“ A=eig(a)”,显示结果A =
-3.0000
2.0000
1.0000,求多项式的4x3-17x2+6x-56的伴随矩阵b的语句是“ p=[4,-17,6,-56];b=compan§”,显示结果b =
4.2500 -1.5000 14.0000
1.0000 0 0
0 1.0000 0 ,求b的特征根的语句是“ B=eig(b)”,显示结果B =
4.5881
-0.1691 + 1.7386i
-0.1691 - 1.7386i 。
结果分析:多项式的系数向量p和伴随矩阵a的关系为:伴随矩阵a的第一行元素为-p(2:n)/p(1),主对角线上下方的元素均为1,其余元素为0.伴随矩阵a的特征值是多项式的根。
3.12 提取矩阵a=[1 2 3 ; 4 5 6 ; 7 8 9; -1 3 5]的对角线元素,命令窗口的语句怎么写?显示结果截图。用提取的对角线元素向量b构造对角矩阵c,命令窗口的语句怎么写?显示结果截图。
答案:提取矩阵a=[1 2 3 ; 4 5 6 ; 7 8 9; -1 3 5]的对角线元素,命令窗口的语句是“a=[1 2 3 ; 4 5 6 ; 7 8 9; -1 3 5], b=diag(a)”,显示结果a =
1 2 3
4 5 6
7 8 9
-1 3 5 ,b =[ 1 5 9]’;用提取的对角线元素向量b构造对角矩阵c,命令窗口的语句是“ c=diag(b)”,显示结果c =
1 0 0
0 5 0
0 0 9 。
3.13 先建立5×5矩阵A,A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。命令窗口的语句怎么写?显示结果截图。
答案:先建立5×5矩阵A,A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。命令窗口的语句为“A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19],D=diag(1:5),DA”,显示结果A =
17 0 1 0 15
23 5 7 14 16
4 0 13 0 22
10 12 19 21 3
11 18 25 2 19
D =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
ans =
17 0 1 0 15
46 10 14 28 32
12 0 39 0 66
40 48 76 84 12
55 90 125 10 95。
3.14 先建立5×5矩阵A,A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];然后将A的第一列元素乘以1,第二列乘以2,…,第五列乘以5。命令窗口的语句怎么写?显示结果截图。
答案:先建立5×5矩阵A,A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];然后将A的第一列元素乘以1,第二列乘以2,…,第五列乘以5。命令窗口的语句为“A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19],D=diag(1:5),A
D”,显示结果A =
17 0 1 0 15
23 5 7 14 16
4 0 13 0 22
10 12 19 21 3
11 18 25 2 19
D =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
ans =
17 0 3 0 75
23 10 21 56 80
4 0 39 0 110
10 24 57 84 15
11 36 75 8 95 。
讨论:命令窗口的语句
“A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19],D=diag(1:5),DA”中DA表示用D左乘A,对A的每行乘以一个指定常数,如果改成AD会怎么样?
结论:D
A表示用D左乘A,对A的每行乘以一个指定常数,A*D表示用D右乘A,对A的每列乘以一个指定常数。
3.15 求矩阵A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19]的上三角阵和下三角阵,命令窗口的语句怎么写?显示结果截图。
答案:求矩阵A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19]的上三角阵和下三角阵,命令窗口的语句为
“ A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19],a=triu(A),b=tril(A)”,显示结果A =
17 0 1 0 15
23 5 7 14 16
4 0 13 0 22
10 12 19 21 3
11 18 25 2 19
a =
17 0 1 0 15
0 5 7 14 16
0 0 13 0 22
0 0 0 21 3
0 0 0 0 19
b =
17 0 0 0 0
23 5 0 0 0
4 0 13 0 0
10 12 19 21 0
11 18 25 2 19 。

3.16 产生一个0~1之间均匀分布的3阶随机矩阵a,并求它的转置矩阵b和共轭转置矩阵c。命令窗口的语句怎么写?显示结果截图。把a的第一行第一列元素置为“1+i”,再求它的转置矩阵b和共轭转置矩阵c。命令窗口的语句怎么写?显示结果截图。
答案:产生一个0~1之间均匀分布的3阶随机矩阵a,并求它的转置矩阵b和共轭转置矩阵c。命令窗口的语句为“ a=rand(3),b=a.’,c=a’”,显示结果
a =
0.3243 0.4460 0.2129
0.6288 0.2314 0.2718
0.7517 0.5677 0.1759
b =
0.3243 0.6288 0.7517
0.4460 0.2314 0.5677
0.2129 0.2718 0.1759
c =
0.3243 0.6288 0.7517
0.4460 0.2314 0.5677
0.2129 0.2718 0.1759。把a的第一行第一列元素置为“1+i”,再求它的转置矩阵b和共轭转置矩阵c。命令窗口的语句为“ a(1,1)=1+i,b=a.’,c=a’”,显示结果
a =

1.0000 + 1.0000i 0.4460 0.2129
0.6288 0.2314 0.2718
0.7517 0.5677 0.1759

b =

1.0000 + 1.0000i 0.6288 0.7517
0.4460 0.2314 0.5677
0.2129 0.2718 0.1759

c =

1.0000 - 1.0000i 0.6288 0.7517
0.4460 0.2314 0.5677
0.2129 0.2718 0.1759 。
3.17 产生一个-1~1之间均匀分布的3阶随机矩阵a,利用函数rot90(A,k)将矩阵A旋转90º的k倍,k分别为1、2、3。命令窗口的语句怎么写?显示结果截图。
答案:产生一个-1~1之间均匀分布的3阶随机矩阵a,利用函数rot90(a,k)将矩阵a旋转90º的k倍,k分别为1、2、3。命令窗口的语句为
“a=-1+2rand(3),b1=rot90(a),b2=rot90(a,2),b3=rot90(a,3)”,显示结果
a =
0.5512 0.4641 0.3773
-0.8363 0.3065 -0.7784
0.0975 0.3061 -0.2843
b1 =
0.3773 -0.7784 -0.2843
0.4641 0.3065 0.3061
0.5512 -0.8363 0.0975
b2 =
-0.2843 0.3061 0.0975
-0.7784 0.3065 -0.8363
0.3773 0.4641 0.5512
b3 =
0.0975 -0.8363 0.5512
0.3061 0.3065 0.4641
-0.2843 -0.7784 0.3773 。
3.18 产生一个-1~1之间均匀分布的3阶随机矩阵a,并求它的逆矩阵b。命令窗口的语句怎么写?显示结果截图。产生矩阵c=[1 0 3 ;4 0 0; -5 0 6],并求它的逆矩阵d。命令窗口的语句怎么写?显示结果截图。分析结果。
答案:产生一个-1~1之间均匀分布的3阶随机矩阵a,并求它的逆矩阵。命令窗口的语句为“ a=-1+2
rand(3),b=inv(a)”,显示结果
a = 0.2019 -0.7655 0.7534
-0.3042 -0.1681 -0.2936
0.6241 0.5896 0.6301

b = -1.3710 -18.9220 -7.1763
-0.1725 7.0048 3.4697
1.5193 12.1875 5.4484 ,产生矩阵c=[1 0 3 ;4 0 0; -5 0 6],并求它的逆矩阵d。命令窗口的语句“c=[1 0 3 ;4 0 0; -5 0 6],d=inv©”,显示结果c =
1 0 3
4 0 0
-5 0 6
Warning: Matrix is singular to working precision.
d =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf 。
结果分析:如果矩阵不是一个方阵,或者是一个非满秩的方阵时,矩阵没有逆矩阵。

3.19 产生矩阵c=[1 0 3 ;4 0 0; -5 0 6],并求它的伪逆矩阵d。命令窗口的语句怎么写?显示结果截图。分析结果。
答案:产生矩阵c=[1 0 3 ;4 0 0; -5 0 6],并求它的伪逆矩阵d。命令窗口的语句“ c=[1 0 3 ;4 0 0; -5 0 6],d=pinv©”,显示结果c =
1 0 3
4 0 0
-5 0 6
d =
0.1085 0.1550 -0.0543
0 0 0
0.1318 0.0930 0.1008 。
3.20 用求逆矩阵的方法解线性方程组。命令窗口的语句怎么写?显示结果截图。用左除运算符“\”求解此线性代数方程组,命令窗口的语句怎么写?显示结果截图。如果用右除运算符“/”代替左除运算符“\”,会出现什么情况?
答案:用求逆矩阵的方法解线性方程组命令窗口的语句“A=[1,2,3;1,4,9;1,8,27],b=[5,-2,6]’,x=inv(A)*b”,显示结果
A = 1 2 3
1 4 9
1 8 27
b = 5
-2
6
x = 23.0000
-14.5000
3.6667 ,用左除运算符“\”求解此线性代数方程组,命令窗口的语句“ A=[1,2,3;1,4,9;1,8,27],b=[5,-2,6]’,x=A\b”,显示结果
A = 1 2 3
1 4 9
1 8 27
b = 5
-2
6
x = 23.0000
-14.5000
3.6667 。如果用右除运算符“/”代替左除运算符“\”,会出现报错“Error using /
Matrix dimensions must agree.”。
分析结果:A\B等效于A的逆左乘B矩阵,也就是inv(A)B,而B/A等效于A矩阵的逆右乘B矩阵,也就是Binv(A)。
3.21 求方阵A=[1,2,3;1,4,9;1,8,27]所对应的行列式的值、A的秩和迹,命令窗口的语句怎么写?显示结果截图。
答案:求方阵A=[1,2,3;1,4,9;1,8,27]所对应的行列式的值、A的秩和迹,命令窗口的语句“A=[1,2,3;1,4,9;1,8,27],b=det(A), c=rank(A),d=trace(A)”,显示结果
A = 1 2 3
1 4 9
1 8 27 ,b = 12 , c = 3,d = 32。
3.22 求向量V=[1,-4,3.6]的2—范数、1—范数和∞—范数;求矩阵A=[1,2,3;1,4,9;1,8,27;-3,0.4,0]的2—范数、1—范数和∞—范数;命令窗口的语句怎么写?显示结果截图。
答案:求向量V=[1,-4,3.6]的2—范数、1—范数和∞—范数,命令窗口的语句“V=[1,-4,3.6],v1=norm(V),v2=norm(V,1),v3=norm(V,inf)”显示结果
V = 1.0000 -4.0000 3.6000,v1 =5.4736,v2 = 8.6000,v3 = 4,求矩阵A=[1,2,3;1,4,9;1,8,27;-3,0.4,0]的2—范数、1—范数和∞—范数,命令窗口的语句
“ A=[1,2,3;1,4,9;1,8,27;-3,0.4,0],a1=norm(A),a2=norm(A,1),a3=norm(A,inf)”,显示结果
A = 1.0000 2.0000 3.0000
1.0000 4.0000 9.0000
1.0000 8.0000 27.0000
-3.0000 0.4000 0 ,a1 = 30.0404,a2 = 39,a3 = 36。
3.23 求矩阵A=[1,2,3;1,4,9;1,8,27]的特征值和特征向量。命令窗口的语句怎么写?显示结果截图。
答案:求矩阵A=[1,2,3;1,4,9;1,8,27]的特征值和特征向量。命令窗口的语句“A=[1,2,3;1,4,9;1,8,27],[V,D]=eig(A)”,显示结果
A = 1 2 3
1 4 9
1 8 27 ,V = -0.1198 -0.8484 -0.7163
-0.3295 0.5150 -0.6563
-0.9365 -0.1222 0.2371 ,
D = 29.9428 0 0
0 0.2179 0
0 0 1.8393 。
3.24 用求特征值的方法解方程3x5-7x4+5x2+2x-18=0。命令窗口的语句怎么写?显示结果截图。用直接求多项式p的零点的方法解方程3x5-7x4+5x2+2x-18=0。命令窗口的语句怎么写?显示结果截图。
答案:用求特征值的方法解方程3x5-7x4+5x2+2x-18=0。命令窗口的语句
“ p=[3,-7,0,5,2,-18],A=compan§,x1=eig(A) ”,显示结果p = 3 -7 0 5 2 -18,
A = 2.3333 0 -1.6667 -0.6667 6.0000
1.0000 0 0 0 0
0 1.0000 0 0 0
0 0 1.0000 0 0
0 0 0 1.0000 0 ,
x1 = 2.1837
1.0000 + 1.0000i
1.0000 - 1.0000i
-0.9252 + 0.7197i
-0.9252 - 0.7197i 。用直接求多项式p的零点的方法解方程3x5-7x4+5x2+2x-18=0。命令窗口的语句“p=[3,-7,0,5,2,-18],x2=roots§ ”,显示结果p = 3 -7 0 5 2 -18,
x2 = 2.1837
1.0000 + 1.0000i
1.0000 - 1.0000i
-0.9252 + 0.7197i
-0.9252 - 0.7197i 。
3.25 产生一个全0的100阶矩阵a,置a的50行60列元素为5,将矩阵a转化为稀疏存储方式的矩阵A。命令窗口的语句怎么写?显示workspace的结果截图。
答案:产生一个全0的100阶矩阵a,置a的50行60列元素为5,将矩阵a转化为稀疏存储方式的矩阵A。命令窗口的语句“ a=zeros(100);a(50,60)=5;A=sparse(a);”,workspace的结果 。

第四章作业
4.1 编写脚本文件求一元二次方程ax2 +bx+c=0的根。a、b、c用input函数输入,根用disp函数输出。
答案:编写的脚本文件如下:a=input(‘a=?’);b=input(‘b=?’);c=input(‘c=?’);
d=bb-4ac;x=[(-b+sqrt(d))/(2a),(-b-sqrt(d))/(2a)];
disp([‘x1=’,num2str(x(1)),’,x2=’,num2str(x(2))]);(或者disp(x);)
讨论:语句disp([‘x1=’,num2str(x(1)),’,x2=’,num2str(x(2))]);和语句disp(x);有何区别?
结论:语句1输出项为字符串,语句2输出为矩阵。
4.2 编写脚本文件计算分段函数
,x用input函数输入;编写函数文件计算此分段函数,x为输入形参,y为输出形参。
答案:编写的脚本文件如下:
x=input(‘请输入x的值:’);
if x==10
y=cos(x+1)+sqrt(x
x+1);
else
y=xsqrt(x+sqrt(x));
end
编写的函数文件如下,存为lyl_4_3_2:
function y=fenduan(x)
if x==10
y=cos(x+1)+sqrt(x
x+1);
else
y=xsqrt(x+sqrt(x));
End
讨论:函数文件名可以和存盘的文件名不一样吗?
结论:可以。
4.3 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。分别编写脚本文件和函数文件实现。
答案:编写的脚本文件如下:
price=input(‘请输入商品价格’);
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price
(1-rate) %输出商品实际销售价格
编写的函数文件如下:function [price,rate ] = prace_rate( price )
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate); %输出商品实际销售价格
4.4 编写函数文件实现矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。代入A=[ 1,2, 3;4 ,5, 6],B=[1,2;3,4],调用编写的函数文件lyl_4_6_2.m,给出C1=lyl_4_6_2(A,B)和C2=lyl_4_6_2(A’,B)的显示结果。
答案:编写的函数文件如下:
function C=chengfa(A,B)
try
C=A*B;
catch
C=A.B;
End
在命令窗口输入“A=[ 1,2, 3;4 ,5, 6];B=[1,2;3,4];C1=lyl_4_6_2(A,B)”,显示结果
Error using .

Matrix dimensions must agree.

Error in lyl_4_6_2 (line 5)
C=A.B;在命令窗口输入“ A=[ 1,2, 3;4 ,5, 6];B=[1,2;3,4];C2=lyl_4_6_2(A’,B)”,显示结果
C2 =13 18
17 24
21 30 。
4.5 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。编写脚本文件实现。
答案:编写的脚本文件如下:
for m=100:999
m1=fix(m/100); %求m的百位数字
m2=rem(fix(m/10),10); %求m的十位数字
m3=rem(m,10); %求m的个位数字
if m==m1
m1m1+m2m2m2+m3m3*m3
disp(m)
end
end
4.6 已知,当n=100时,求y的值。编写脚本文件实现。如果不采用循环语句,该怎么实现?
答案:编写的脚本文件如下:y=0;n=100;
for i=1:n
y=y+1/i/i;
end
Y ,如果不采用循环语句,可以这样实现:n=100;
i=1:n;
f=1./i.^2;
y=sum(f) 。
4.7 写出下列程序的执行结果。s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
s=s+k;
end
disp(s’);
答案:程序的执行结果为“39 48 57 66”。
分析结果:for语句更一般的格式为:
for 循环变量=矩阵表达式
循环体语句
end
执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。
4.8 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。编写脚本文件实现。
答案:编写的脚本文件如下:sum=0;
n=0;
val=input(‘Enter a number (end in 0):’);
while (val~=0)
sum=sum+val;
n=n+1;
val=input(‘Enter a number (end in 0):’);
end
if (n > 0)
sum
mean=sum/n
end
4.9 求[100,200]之间第一个能被21整除的整数。编写脚本文件实现。
答案:编写的脚本文件如下:for n=100:200
if rem(n,21)~=0
continue
end
break
end
n

4.10 利用函数的递归调用,求n!编写函数文件实现。
答案:编写的函数文件如下:function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n; %递归调用求(n-1)!
End

第五章作业
5.1 在0≤X≤2区间内,绘制曲线y=2e-0.5xsin(2πx)。程序如下:
x=0:pi/100:2pi;
y=2
exp(-0.5x).sin(2pix);
plot(x,y),要想使所绘图形用双划线、星号标记,该如何修改程序?
答案:要想使所绘图形用星号标记,把plot(x,y)改为plot(x,y,’–’)即可。
5.2 用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。程序如下: x=(0:pi/100:2
pi)’;
y1=2exp(-0.5x)[1,-1];
y2=2
exp(-0.5x).sin(2pix);
x1=(0:12)/2;
y3=2exp(-0.5x1).sin(2pix1);
plot(x,y1,‘g:’,x,y2,‘b–’,x1,y3,‘rp’);请问y1的维数是多少?颜色和线型是什么?Y2的维数是多少?颜色和线型是什么?y3的维数是多少?颜色和标记符号是什么?
答案:y1的维数是201x2,颜色是绿色,线型是虚线。Y2的维数是201x1,颜色是蓝色,线型是双划线。y3的维数是1x13,颜色是红色,标记符号是五角星符。
5.3 用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2πx)及曲线y2=sin(x)。要求x轴的坐标从[0,2
pi],y1轴的坐标从[-1.5,1.5],程序如下,请把程序补充完整。
x1=0:pi/100:2pi;
x2=0:pi/100:3
pi;
y1=exp(-0.5x1).sin(2pix1);
y2= sin(x2);
plotyy(x1,y1,x2,y2);
答案:在程序的最后面加上语句:“axis([0,2pi,-1.5,1.5])”。
5.4 在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。程序如下:
x=linspace(0,2
pi,60); 2
y=sin(x);z=cos(x);
t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); 1
subplot(2,2,1);
plot(x,y);title(‘sin(x)’);axis ([0,2pi,-1,1]);
subplot(2,2,2);
plot(x,z);title(‘cos(x)’);axis ([0,2
pi,–1,1]);
subplot(2,2,3);
plot(x,t);title(‘tangent(x)’);axis ([0,2pi,-40,40]);
subplot(2,2,4);
plot(x,ct);title(‘cotangent(x)’);axis ([0,2
pi,-40,40]);请问:语句1为什么要+eps?如果语句2改为x=linspace(0,2pi,6000); 语句1改为t=sin(x)./cos(x); ct=cos(x)./sin(x); 图形会出现什么变化?截图对比。
答案:语句1+eps是为了避免除以0,如果语句2改为x=linspace(0,2
pi,6000); 语句1改为t=sin(x)./cos(x); ct=cos(x)./sin(x); 图形会出现变化,

5.5 要削掉正弦波顶部或底部大于0.5的部分,可使用下面的程序:
x=0:pi/10:4*pi;
y=sin(x);
i=find(abs(y)>0.5); 1
x(i)=NaN;
plot(x,y);如果想削掉正弦波顶部或底部小于0.15的部分,该怎么修改程序?
答案:如果想削掉正弦波顶部或底部小于0.15的部分,把语句1修改为i=find(abs(y)<0.15);即可。
第六章作业
6.1 求向量x=[-43,72,9,16,23,47]的最大值及该元素的位置、最小值及该元素的位置;求矩阵A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]的最大值、最小值;命令窗口语句怎么写?显示结果截图。
答案:求向量x=[-43,72,9,16,23,47]的最大值及该元素的位置、最小值及该元素的位置命令窗口语句为“x=[-43,72,9,16,23,47],[x_max,k1]=max(x),[x_min,k2]=min(x)”;显示结果
x = -43 72 9 16 23 47,x_max = 72,k1 = 2,x_min = -43,k2 = 1。求矩阵A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]的最大值、最小值命令窗口语句为
“A=[13,-56,78;25,63,-235;78,25,563;1,0,-1],a_max=max(max(A)),a_min=min(min(A))”,显示结果A = 13 -56 78
25 63 -235
78 25 563
1 0 -1 ,a_max = 563,a_min = -235 。
6.2 求矩阵A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]的每行元素之和和全部元素之和。命令窗口语句怎么写?显示结果截图。
答案:求矩阵A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]的每行元素之和和全部元素之和。命令窗口语句“A=[13,-56,78;25,63,-235;78,25,563;1,0,-1],S=sum(A,2),D=sum(S)”,显示结果
A = 13 -56 78
25 63 -235
78 25 563
1 0 -1 ,
S = 35
-147
666
0 ,D = 554 。
6.3 求向量x=[9,-2,5,6,7,12]的平均值和中值。求向量x=[9,-2,5,6,7,12,18]的平均值和中值。命令窗口语句怎么写?显示结果截图。
答案:求向量x=[9,-2,5,6,7,12]的平均值和中值。命令窗口语句
“x=[9,-2,5,6,7,12],a=mean(x),b=median(x)”,显示结果x = 9 -2 5 6 7 12,
a = 6.1667,b = 6.5000。求向量x=[9,-2,5,6,7,12,18]的平均值和中值命令窗口语句“x=[9,-2,5,6,7,12,18],a=mean(x),b=median(x)”,显示结果x = 9 -2 5 6 7 12 18,
a = 7.8571,b = 7.
6.4 求s=1!+2!+…+6!的值。命令窗口语句怎么写?显示结果截图。
答案:求s=1!+2!+…+6!的值。命令窗口语句“x=cumprod(1:6);s=sum(x)”显示结果s = 873。
6.5 对矩阵a=[1,-8,5;4,12,6;13,7,-13]做:每行按升序排序、每列按降序排序并将每个元素所在行号送矩阵I。命令窗口语句怎么写?显示结果截图。
答案:对矩阵a=[1,-8,5;4,12,6;13,7,-13]做:每行按升序排序、每列按降序排序并将每个元素所在行号送矩阵I命令窗口语句“a=[1,-8,5;4,12,6;13,7,-13],b=sort(a,2),[X,I]=sort(a,‘descend’)”,显示结果a = 1 -8 5
4 12 6
13 7 -13
b = -8 1 5
4 6 12
-13 7 13
X = 13 12 6
4 7 5
1 -8 -13
I = 3 2 2
2 3 1
1 1 3。

6.6 计算(x3-2x2+5x+3)+(6x-1)和(x3-2x2+5x+3)-(2x2-x+3)。命令窗口语句怎么写?显示结果截图。
答案:计算(x3-2x2+5x+3)+(6x-1)命令窗口语句“a=[1,-2,5,3];b=[0,0,6,-1];c=a+b”,显示结果
c =1 -2 11 2;计算(x3-2x2+5x+3)-(2x2-x+3)命令窗口语句“a=[1,-2,5,3];b=[0,-2,-1,3];c=a-b”,显示结果c = 1 0 6 0 。
6.7 求多项式x4+8x3-10与多项式2x2-x+3的乘积。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“a=[1,8,0,0,-10];b=[2,-1,3];C=conv(a,b)”显示结果C = 2 15 -5 24 -20 10 -30.
6.8 求多项式2x6+15x5-5x4+24x3-20x2+10x-30与x4+8x3-10的商式和余式。命令窗口语句怎么写?显示结果截图。
答案:“a=[2 15 -5 24 -20 10 -30],b=[1,8,0,0,-10],[c,d]=deconv(a,b)”,显示结果
a = 2 15 -5 24 -20 10 -30
b = 1 8 0 0 -10
c = 2 -1 3
d = 0 0 0 0 0 0 0 。
6.9 求多项式x4+8x3-10除以多项式2x2-x+3的结果。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“ a=[1,8,0,0,-10],b=[2,-1,3],[c,d]=deconv(a,b)”,显示结果
a = 1 8 0 0 -10
b = 2 -1 3
c = 0.5000 4.2500 1.3750
d = 0 0 0 -11.3750 -14.1250 。
6.10 某多项式除以多项式-2x2-10x+3的结果是4x-4,求这个多项式的表达式。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“a=[-2,-10,3],b=[4,-4],c=conv(a,b)”,显示结果a = -2 -10 3,
b = 4 -4,c = -8 -32 52 -12。
6.11 某多项式除以多项式-2x2-10x+3的商式是13x3-4x 2+5,余式是4x-4,求这个多项式的表达式。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“a=[-2,-10,3],b=[13,-4,0,5],c=[0,0,0,0,4,-4],d=conv(a,b)+c”,显示结果
a = -2 -10 3,b = 13 -4 0 5,c = 0 0 0 0 4 -4,
d = -26 -122 79 -22 -46 11 。
6.12 求多项式x4+8x3-10的导函数。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“a=[1,8,0,0,-10],b=polyder(a)”,显示结果a = 1 8 0 0 -10;
b = 4 24 0 0 。则多项式x4+8x3-10的导函数是4x3+8x2。
6.13 求有理分式的导数。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句“P=1; Q=[1,0,5]; [p,q]=polyder(P,Q)”,显示结果p = -2 0,
q = 1 0 10 0 25。
6.14 求多项式x4+8x3-10与多项式2x2-x+3乘积的导数。命令窗口语句怎么写?结果截图。
答案:命令窗口语句“P=[1,8,0,0,-10]; Q=[2,-1,3]; p=polyder(P,Q)”,显示结果p = 12 75 -20 72 -40 10,即多项式x4+8x3-10与多项式2x2-x+3乘积的导数为12x5+75x4-20x3+72x2-40x+10。
6.15 已知多项式x4+8x3-10,分别取x1=1.2和矩阵x2=[-1,1.2,-1.4;2,-1.8,1.6]为自变量,计算该多项式的值。命令窗口语句怎么写?显示结果截图。
答案:命令窗口语句
“A=[1,8,0,0,-10]; x1=1.2;x2=[-1,1.2,-1.4;2,-1.8,1.6];y1=polyval(A,x1),y2=polyval(A,x2) ”,显示结果y1 = 5.8976,y2 = -17.0000 5.8976 -28.1104
70.0000 -46.1584 29.3216 。

6.16 已知多项式x4+8x3-10,以矩阵x=[-1,1.2;2,-1.8]为自变量分别用polyval和polyvalm计算该多项式的值。命令窗口语句怎么写?显示结果截图。分析结果。
答案:命令窗口语句“A=[1,8,0,0,-10]; x=[-1,1.2;2,-1.8];y1=polyval(A,x),y2=polyvalm(A,x)”,显示结果y1 = -17.0000 5.8976
70.0000 -46.1584,y2 = -60.5840 50.6496
84.4160 -94.3504。
结果分析:设A为方阵,P代表多项式x4+8x3-10,那么polyvalm(P,A)的含义是:
AAAA+8AAA-10*eye(size(A));而polyval(P,A)的含义是:
A.*A.*A.A+8A.A.A-10ones(size(A))。
6.17 已知:,① 计算f(x)=0 的全部根。② 由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。命令窗口语句怎么写?显示结果截图。
答案:①命令窗口语句“P=[3,0,4,-5,-7.2,5]; X=roots§”,显示结果
X = -0.3046 + 1.6217i
-0.3046 - 1.6217i
-1.0066
1.0190
0.5967
②命令窗口语句“G=poly(X)”,显示结果
G =1.0000 -0.0000 1.3333 -1.6667 -2.4000 1.6667,所以由方程f(x)=0的根构造一个多项式为
P=[3,0,4,-5,-7.2,5];
G =[1.0000 -0.0000 1.3333 -1.6667 -2.4000 1.6667];
x=-100:100;
Z1=polyval(P,x);
z=polyval(G,x);
plot(x,z,’😮’,x,z1,'m
-’)
验证:命令窗口语句“P=[1,0,1.3333,-1.6667,-2.4,1.6667]; X=roots§”
结果分析:不同的多项式可能具有同样的根。

6.18 某次实验测得的数据如下表所示,用不同的插值方法计算f([0.461,0.462,0.463,0.464,0.465,0.466,0.467,0.468,0.469,0.471,0.472,0.473,0.474,0.475,0.476,0.477,0.478,0.479,0.481,0.482,0.483,0.484,0.485,0.486,0.487,0.488,0.489])。以x为自变量绘制用不同的插值方法得到的曲线F(x),并进行比较。
x 0.46 0.47 0.48 0.49
F(x) 0.48465 0.49375 0.50274 0.51166

答案:
x=0.46:0.01:0.49; %给出x和f(x)
f=[0.4846555,0.4937542,0.5027498,0.5116683];
x1=[0.461,0.462,0.463,0.464,0.465,0.466,0.467,0.468,0.469,0.471,0.472,0.473,0.474,0.475,0.476,0.477,0.478,0.479,0.481,0.482,0.483,0.484,0.485,0.486,0.487,0.488,0.489]
format long
a=interp1(x,f,x1,‘linear’) %用默认方法,即线性插值计算f(x1)
b=interp1(x,f,x1,‘nearest’) %用最近点插值计算f(x1)
c=interp1(x,f,x1,‘pchip’) %用3次Hermite插值计算f(x1)
d=interp1(x,f,x1,‘spline’) %用3次样条插值计算f(x1)
format short
plot(x,f,‘g:o’,x1,a,‘r*-’,x1,b,‘b±.’,x1,c,‘md–’,x1,d,‘kh’)
figure
subplot(2,2,1)
plot(x,f,‘g:o’,x1,a,‘r*-’)
subplot(2,2,2)
plot(x,f,‘g:o’,x1,b,‘b±.’)
subplot(2,2,3)
plot(x,f,‘g:o’,x1,c,‘md–’)
subplot(2,2,4)
plot(x,f,‘g:o’,x1,d,‘kh’)

6.19 用一个3次多项式在区间[0,2π]内逼近函数sin(x)。(1)在给定区间上,均匀地选择50个采样点,并计算采样点的函数值,然后利用3次多项式逼近。(1)在给定区间上,均匀地选择20个采样点,并计算采样点的函数值,然后利用3次多项式逼近。分析结果有什么不同。
答案:
X1=linspace(0,2pi,50);
Y1=sin(X1);
X2=linspace(0,2
pi,20);
Y2=sin(X2);
P1=polyfit(X1,Y1,3);
P2=polyfit(X2,Y2,3);
Z1=polyval(P1,X1);
Z2=polyval(P2,X2);
subplot(2,1,1)
plot(X1,Y1,’😮’,X1,Z1,’-’)
subplot(2,1,2)
plot(X2,Y2,’😮’,X2,Z2,’-
’)

6.20 分别用一个3次多项式和一个5次多项式在区间[0,2π]内逼近函数f(x)=sin(x)+cos(x)。在给定区间上,均匀地选择20个采样点,并计算采样点的函数值,然后利用多项式逼近。分析结果有什么不同。
答案:X=linspace(0,2pi,20);
Y=sin(X)+cos(X);
P1=polyfit(X,Y,3);
P2=polyfit(X,Y,5);
Z1=polyval(P1,X);
Z2=polyval(P2,X);
subplot(2,1,1)
plot(X,Y,’😮’,X,Z1,’-
’)
subplot(2,1,2)
plot(X,Y,’😮’,X,Z2,’-*’)

第八章作业
8.1 分别用直接解法、LU分解矩阵法、QR分解矩阵法、Cholesky分解矩阵法求解法求解下列线性方程组。分析它们的实现条件。

答案:用直接解法求解下列线性方程组的命令语句是“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]’;x=A\b”,结果显示x =[ -66.5556 25.6667 -18.7778 26.5556]。
用LU分解矩阵法求解线性方程组的命令语句是
“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]’;[L,U]=lu(A);x=U(L\b)”或
“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]’;[L,U,P]=lu(A); x=U(L\Pb)”。
用QR分解矩阵法求解线性方程组的命令语句是
“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]’;[Q,R]=qr(A);x=R(Q\b)”或
“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]’;[Q,R,E]=qr(A); x=E
(R(Q\b))”。
用Cholesky分解矩阵法求解线性方程组的命令语句是
“A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; b=[13,-9,6,0]’; R=chol(A)”,显示结果“Error using chol
Matrix must be positive definite.”。
结果分析:利用直接解法求解线性方程组,矩阵X没有要求。利用LU分解矩阵法、QR分解矩阵法求解线性方程组,矩阵X必须是方阵,如果不是,可以补全0行或列再分解。 利用Cholesky分解矩阵法求解线性方程组,矩阵X必须是对称正定的方阵。如果试图对一个非正定矩阵进行Cholesky分解,则将得出错误信息,所以,chol函数还可以用来判定矩阵是否为正定矩阵。
8.2 下列线性方程组 直接解法能解吗?分解矩阵法能解吗?如果能,给出答案。
答案:直接解法能解,命令语句是“A=[2,3,-5,1;1,-5,0,7;;1,6,-3,-4];b=[13,59,0]’;x=A\b”,显示结果是“x =[ 0 33.8750 24.2500 32.6250]”。用LU分解矩阵法、QR分解矩阵法能解,命令语句是“[L,U]=lu(A);x=U(L\b)”或“ [Q,R]=qr(A);x=R(Q\b)”,显示结果是
“x = 0
33.8750
24.2500
32.6250”,用Cholesky分解矩阵法不能解题。
8.3 分别用矩阵除法以及矩阵分解求线性方程组的解。

答案:(1)用直接解法求解下列线性方程组的命令语句是
“A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]’;x=A\b”,结果显示x =[ -1.8060 -0.5373 3.0448]’。用LU分解矩阵法求解线性方程组的命令语句是
“A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]’;[L,U]=lu(A);x=U(L\b)”。用QR分解矩阵法求解线性方程组的命令语句是“A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]’;[Q,R]=qr(A);x=R(Q\b)”。显示结果是同用直接解法求解结果。
(2)用直接解法求解下列线性方程组的命令语句是
“A=[5,1,-1,0;1,0,3,-1;-1,-1,0,5;0 0 2 4];b=[1,2,3,-1]’;x=A\b”,结果显示
x =[ 1.4000 -5.9000 0.1000 -0.3000]’。用LU分解矩阵法求解线性方程组的命令语句是
“A=[5,1,-1,0;1,0,3,-1;-1,-1,0,5;0 0 2 4];b=[1,2,3,-1]’;[L,U]=lu(A);x=U(L\b)”。用QR分解矩阵法求解线性方程组的命令语句是“A=[5,1,-1,0;1,0,3,-1;-1,-1,0,5;0 0 2 4];b=[1,2,3,-1]’;[Q,R]=qr(A);x=R(Q\b)”。显示结果是同用直接解法求解结果。