MATLAB课后习题答案
4. 求符号矩阵 A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 syms W; A = sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]'); [RDA, W] = subexpr(det(A), W) [RIA, W] = subexpr(inv(A), W) RDA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 a13*a22*a31 W = [ empty sym ] RIA = [ W*(a22*a33 - a23*a32), -W*(a12*a33 - a13*a32), W*(a12*a23 - a13*a22)] [ -W*(a21*a33 - a23*a31), W*(a11*a33 - a13*a31), -W*(a11*a23 - a13*a21)] [ W*(a21*a32 - a22*a31), -W*(a11*a32 - a12*a31), W*(a11*a22 - a12*a21)] W = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 其中, RIA、RDA 是置换后的 det(A)、inv(A)的表达式,W 则是置换表达式。 5. (略) 6. 对于… syms x k; f = 2 / (2*k+1)* ((x-1)/(x+1))^(2*k+1); s = symsum(f, k, 0, inf); s1 = simple(s) 所得结果与提示给出的理论结果相符。 7. (1)通过符号计算求 参考例 2.3-4 8. 求出
湖北汽车工业学院毕业论文
《MATLAB 教程》课后习题参考答案
参考答案,仅供参考; 若有错漏,欢迎指正;
声
明
1.这是我个人拟定的参考答案,不是标准 答案;若有不良后果,我不负责。当然,
编写人:湖北汽车工业学院 汽车系教师 黄兵锋
我已经尽力做正确了。 2.考题可能源于这些题目,但会“变形 ”。 3.我不能保证把所有题目都做完。 4.每次的更新,不仅仅是增加一章,也对 前一章的错漏有所修正。
根据运行结果可知,三条指令全部正确执行(Notebook 版本为 2007a),并不像课本 上介绍的那样,中文状态下输入的标点符号不认识(这样的话,会出现“第 1、2 条指 令可以实现目的,第 3 条则不能”的结果) 9. 试为例 1.3-5 编写一个解题用的 M 脚本文件? 略
2
湖北汽车工业学院毕业论文
1 2 3 8. 想要在 MATLAB 中产生二维数组 S = 4 5 6 ,下面哪些指令能实现目的? 7 8 9
S S S S = [1, 2, 3; 4, 5, 6; 7, 8, 9] = [1 2 3; 4 5 6; 7 8 9] = [1,2,3; 4, 5, 6; 7, 8,9] %整个指令在中文状态输入 = 1 2 3 4 5 6 7 8 9 S = 1 2 3 4 5 6 7 8 9 S = 1 2 3 4 5 6 7 8 9
a = 7/3; b = sym(7/3); c = sym(7/3, 'd'); d = sym('7/3'); vpa(abs(a-d)) vpa(abs(b-d)) vpa(abs(c-d)) a = pi/3; b = sym(pi/3); c = sym(pi/3, 'd'); d = sym('pi/3'); vpa(abs(a-d)) vpa(abs(b-d)) vpa(abs(c-d)) a = pi*3^(1/3); b = sym(pi*3^(1/3)); c = sym(pi*3^(1/3), 'd'); d = sym('pi*3^(1/3)'); vpa(abs(a-d)) vpa(abs(b-d)) vpa(abs(c-d)) ans = 0.0 ans = 0.0 ans = 0.00000000000000014802973661668756666666667788716 ans = 0.0 ans = 0.0 ans = 0.00000000000000011483642827992216762806615818554 ans = 0.00000000000000026601114166290944374842393221638 ans = 0.00000000000000026601114166290944374842393221638 ans = 0.0000000000000002660111416629094726767991785515 返回结果为 0.0 的表明二者相等
II
湖北汽车工业学院毕业论文
习题 1 1. 在安装 MATLAB 软件时,那个组件是必须选择的? 必须选择的组件是“MATLAB 7.x”,如图所示第二项
2. 数字 1.5e2,1.5e3 中的哪个与 1500 相同? 1.5e3 与 1500 相同 3. 请指出如下 5 个变量名中,那些是合法的? abcd-2 xyz_3 3chan a 变量 ABCDefgh MATLAB 的变量可以由字母、数字、“_”(即下划线)组成,但必须是由字母开头, 不能出现其他标点符号或者中文。 合法的变量有 xyz_3 和 ABCDefgh。 4. 在 MATLAB 中,比 1 大的最小数是多少? 比 1 大的最小数是 1 + eps , 不是 1 + realmin 分析如下: 请输入下面的指令,并观察运算结果: a = 1.0 + eps; b = 1.0 + realmin; a, b a-1 b-1 a = 1.0000 b = 1 ans = 2.2204e-016 ans = 0 说明:输入的是“ 1.0”,不是“1”,是为了强制将变量 a、b 设置为小数。(其实输入 “1 + eps”,结果是一样的)。 5. 设 a = -8,运行以下三条指令,问运行结果相同吗?为什么? a =w1 w2 w3 w1 = a^(2/3) = (a^2)^(1/3) = (a^(1/3))^2 = -2.0000 + 3.4641i w2 = 4.0000 w3 = -2.0000 + 3.4641i
所以,第 2 条指令与第 1、3 两条指令运行结果不同。 原因在于第 2 条指令先将 -8 平方,所得结果为正数,然后开方。 6. 指令 clear ,clf,clc 各有什么用处? clear 清除内存中所有由用户定义的变量; clf 清除当前窗口对象的内容; clc 清除交互式界面中指令窗(“Command Window”)中所显示的内容(包括用户输入 的命令和 MATLAB 的计算结果等)。 7. 以下两种说法对吗? ①MATLAB 的数值表达精度与其指令窗中的数据显示精度相同。 ②MATLAB 指令窗中显示的数值有效位数不超过 7 位。 两种说法都不对。 ①MATLAB 提供了控制数据显示格式的控制指令 format,该指令并不改变 MATLAB 内 存中变量的精度,只是改变其显示精度; ②当变量小于 1000 时,使用了 format 或 format short 后,或者默认情况下,变量的显示 精度最多不超过 7 位,但显示精度不等于变量的精度。
∫
1.7 π
−5 π
e −| x| | sin x | dx 的具有 64 位有效数字的积分值。
syms x;
4
湖北汽车工业学院毕业论文
f = exp(-abs(x)) * abs(sin(x)); y = int(f, -5*pi, 1.7*pi); digits 64 vpa(y) ans = 1.087849417255503701102633764498941389696991336803454392428439159
习题 2 ................................................................................................................................... 3
习题 7 ................................................................................................................................... 7
2. 说出以下三条指令产生的结果各属于哪知数据类型,是“双精度”对象,还是符号“对 象”? 3/7 + 0.1, sym(3/7 + 0.1), vpa(sym(3/7 + 0.1)) 利用 MATLAB 指令查看其数据对象: class(3/7 + 0.1)
3
湖北汽车工业学院毕业论文
class(sym(3/7 + 0.1)) class(vpa(sym(3/7 + 0.1))) ans = double ans = sym ans = sym 注意:vpa 指令返回的结果是符号对象。
3. 在不加专门指定的情况下,以下符号表达式中的哪一个变量是独立自由变量。 sym(‘sin(w*t)’), sym(‘a*exp(-X)’), sym(‘z * exp(j *theta)’)
findsym(sym('sin(w*t)')) findsym(sym('a*exp(-X)')) findsym(sym('z * exp(j *theta)')) ans = t,w ans = X,a ans = j,z
∫
x
0