Matlab习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
message: [1x233 char]
(2)
>> z = @(x)(x(1)-x(2)+1)^2;
>> [x,fvalue,flag,output]=fminsearch(z,[0,0])
x=
-0.5425 0.4575
fvalue =
2.4109e-011
flag =
1
output =
iterations: 40
(2) >> y=@(x)x*sin(x); x=
0
3. 求下列函数的极值。
(1) z = x2 − ( y −1)2
(2) z = ( x − y +1)2
参考答案:
(1)
>> z = @(x)x(1)^2-(x(2)-1)^2;
>> [x,fvalue,flag,output]=fminsearch(z,[0,0])
8.编写脚本,输出上面第 6 题中的表达式的值。 脚本文件内容为: a=39; b=58; c=3; d=7; disp('a>b'),disp(a>b); disp('a<c'),disp(a<c); disp('a>b&&b>c'),disp(a>b&&b>c)
disp('a==d'),disp(a==d); disp('a|b>c'),disp(a|b>c); disp('~~d'),disp(~~d);
1 (2) >> 4<=20 ans =
1 (3) >> 4==20 ans =
0 (4) >> 4~=20 ans =
1 (5) >> 'b'<'B' ans =
0
6.设 a = 39 , b = 58 , c = 3, d = 7 ,判断下面表达式的值。 (1) a > b (2) a < c (3) a > b & &b > c (4) a == d (5) a | b > c (6) ~~ d 参考答案: (1) >> a=39; >> b=58;
0000000000.000000
x=
1.0e+041 *
0.9523 -6.0686
fvalue =
-3.5921e+083
flag =
0
output =
iterations: 200
funcCount: 401
algorithm: 'Nelder-Mead simplex direct search'
第 2 章习题参考答案
1.创建 double 的变量,并进行计算。 (1) a=87,b=190,计算 a+b、a-b、a*b。 (2) 创建 uint8 类模的变量,数值与(1)中相同,进行相同的计算。 参考答案: (1) >> a=87 a=
87 >> b=190 b=
190 >> a+b ans =
利用本章介绍的几种插值方法对其进行插值,得到每隔 0.05 的结果。 编写脚本文件,文件内容为: % Interpolation using the four methods x=[1 1.1 1.2 1.3 1.4]; y=[1.00000 1.23368 1.55271 1.99372 2.61170]; length_of_x=length(x); scalar_x=x(1):0.05:x(length_of_x); length_of_sx=length(scalar_x); y_nearest = zeros(length(scalar_x),1); y_linear = zeros(length(scalar_x),1); y_spline = zeros(length(scalar_x),1); y_cubic = zeros(length(scalar_x),1); for i=1:length_of_sx
第 3 章习题答案
1. 在命令提示符下输入以下两条命令:
>> x = [ 9 3 0 6 3] >> y = mod((sqrt(length(((x+5).*[1 2 3 4 5]))*5)),3)
求 y 值为多少? 参考答案: y =2
2. 在 MATLAB 中运行以下命令:
a = [3, 7, 2, 7, 9, 3, 4, 1, 6]; b = [7]; a(4) = []; vec1 = a==b; vec2 = mod(a,2)==0; c = sum(vec1); vec3 = vec1+vec2; d = vec3.*a; vec4 = find(a > 5); e = a(vec4) + 5; vec5 = find(a < 5); f = vec5.^2;
2.2204e-016 (2) >> f5 = @(x,y)sin(y).*(x+y)./(x.^2+4); >> q = dblquad(f5,1,10,1,10) q=
5.5254
第 5 章习题参考答案
1.编制一个脚本,查找给定字符串中指定字符出现的次数和位置 参考答案:
脚本文件内容为:
% find the times and places of the specified letter in the string
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current
function
value:
-35921226633944080000000000000000000000000000000000000000000000000000000000
uv 参考答案: (1) >> u=2; >> v=3; >> 4*u*v/log(v) ans =
21.8457 (2) >> (exp(u)+v)^2/(v^2-u) ans =
15.4189 (3) >> sqrt(u-3*v)/(u*v) ans =
0 + 0.4410i
4.计算如下表达式:
1.4 2.61170
2. 求下列函数的解,并绘制图形。
(1) y = ex − x5 ,初始点为 x = 8 (2) y = x sin x 参考答案: (1) >> y=@(x)exp(x)-x^5; >> x = fzero(y,8) x=
12.7132 >> fplot(y,[x-1,x+1]); >> hold on >> plot(x,y(x),'r*');
>> c=3; >> d=7; >> a>b ans =
0 (2) >> a<c ans =
0 (3) >> a>b&&b>c ans =
0 (4) >> a==d ans =
0 (5) >> a|b>c ans =
1 (6) >> ~~d ans =
1
7.编写脚本,计算上面第 2 题中的表达式。 脚本文件内容为: disp('sin(60)='); disp(sind(60)); disp('exp(3)='); disp(exp(3)); disp('cos(3*pi/4)='); disp(cos(3*pi/4));
(3)
cos
3 4
π
参考答案:
(1) >> sind(60) ans =
0.8660 (2) >> exp(3) ans =
20.0855 (3) >> cos(3*pi/4) ans =
-0.7071
3.设 u = 2 , v = 3,计算: (1) 4 uv
log v
( ) (2) eu + v 2 v2 −u (3) u − 3v
funcCount: 74
algorithm: 'Nelder-Mead simplex direct search'
message: [1x196 char]
4. 计算下列积分。
∫ (1) 1 x + x3 + x5dx −1
∫ ∫ (2)
10 1
10
sin
1
y
x+ y x2 + 4
dxdy
参考答案: (1) >> f = @(x)x+x.^3+x.^5; >> q = quad(f,-1,1) q=
求 c、d、e、f 的值。 参考答案: c=1,d= [0,7,2,0,0,4,0,6] ,e= [12,14,11] ,f=[1,9,25,36,49]
3. 参考答案略。
4. 参考答案略。
第 4 章习题参考答案
1. 有如下数据:
X
1
1.1
1.2
1.3
y
1.00000
Hale Waihona Puke Baidu
1.23368
1.55271
1.99372
(1) (3− 5i)(4 + 2i) (2) sin (2 − 8i)
参考答案: (1) >> (3-5*i)*(4+2*i) ans =
22.0000 -14.0000i
(2) >> sin(2-8*i) ans =
1.3553e+003 +6.2026e+002i
5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20 (3) 4 == 20 (4) 4 ~= 20 (5) 'b'<'B' 参考答案: (1) >> 4<20 ans =
letter = 'a';
% The specified letter to be searched for
string = 'China'; % The specified tring to be searched
places = findstr(S,A); % The places of the letter
ntimes = length(places);% The times of the letter
2.编写一个脚本,判断输入字符串中每个单词的首字母是否为大写,若不是则将其修改为 大写,其他字母为小写。
参考答案: 脚本文件内容为: str = 'this is the string to be converted'; nlength = length(str); for k=1:nlength if (k==1 || isspace(str(k-1))) && (str(k)<='z' && str(k)>='a')
y_nearest(i)=interp1(x,y,scalar_x(i),'nearest'); y_linear(i) =interp1(x,y,scalar_x(i),'linear'); y_spline(i) =interp1(x,y,scalar_x(i),'spline'); y_cubic(i) =interp1(x,y,scalar_x(i),'cubic'); end subplot(2,2,1),plot(x,y,'*'),hold on,plot(scalar_x,y_nearest),title('method=nearest'); subplot(2,2,2),plot(x,y,'*'),hold on,plot(scalar_x,y_linear),title('method=linear'); subplot(2,2,3),plot(x,y,'*'),hold on,plot(scalar_x,y_spline),title('method=spline'); subplot(2,2,4),plot(x,y,'*'),hold on,plot(scalar_x,y_cubic),title('method=cubic'); 得到结果为:
277 >> a-b ans =
-103 >> a*b ans =
16530 (2) >> c=uint8(87) c=
87 >> d=uint8(190) d=
190 >> c+d ans =
255 >> c-d ans =
0 >> c*d ans =
255
2.计算:
(1) sin (60o)
(2) e3
str(k) = char(double(str(k)) - 32); end end disp(str);
3.创建 2×2 单元数组,第 1、2 个元素为字符串,第三个元素为整模变量,第四个元素 为双精度(double)类模,并将其用图形表示。
参考答案: >> cellA = cell(2,2); >> cellA(1,1) = {'the first element of the cell'}; >> cellA(1,2) = {'the second element of the cell'}; >> cellA(2,1) = {uint8(5)}; >> cellA(2,2) = {[2,3;3,4]};