MATLAB基础教程 薛山第二版 课后习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
plot(scalar_x,y_linear),title('method=linear');
subplot(2,2,3),plot(x,y,'*'),holdon,
plot(scalar_x,y_spline),title('method=spline');
subplot(2,2,4),plot(x,y,'*'),holdon,
y_cubic =interp1(x,y,scalar_x,'cubic');
subplot(2,2,1),plot(x,y,'*'),holdon,
plot(scalar_x,y_nearest),title('method=nearest');
subplot(2,2,2),plot(x,y,'*'),holdon,
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)
(3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且元素按照vec中的顺序排列。
(4)创建一个新的向量vec3R,使其从vec中从最后一个元素开始,并且间隔三个元素取一个元素,直到第一个元素为止。
(5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值。
(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素。
disp('vecB=[]');disp(vecB)
C=find(vec<45);
vecS源自文库vec(C);
disp('vecS=[]');disp(vecS)
vec3R=vec(end:-4:1);
disp('vec3R=[]');disp(vec3R)
vecN=find(vec==2|vec==4);
x1=fzero(f,[0,pi]);
x2=fzero(f,[pi,2*pi]);
plot(x,sin(x),'b-','LineWidth',4),holdon,plot(x,cos(x),'r:','LineWidth',4);
plot(scalar_x,y_cubic),title('method=cubic');
2. 求下列函数的解,并绘制图形。
(1) ,初始点为
(2)
clear,clc
%第一小题
y_1=@(x)exp(x)-x^5; x0 =8;
subplot(1,2,1), holdon,fplot(y_1,[x0,x0+10]),title('exp(x)-x^5');
e = a(vec4) + 5;
vec5 = find(a < 5);
f = vec5.^2;
disp('c=');disp(c)
disp('d=');disp(d)
disp('e=');disp(e)
disp('f=');disp(f)
3. 向量操作时MATLAB的主要部分,使用给出的向量来做下面的练习。
2)掌握MATLAB的矩阵和数组的运算
3)掌握MATLAB符号表达式的创建
4)熟悉符号方程的求解
2
第二章
1.创建double的变量,并进行计算。
(1)a=87,b=190,计算 a+b、a-b、a*b。
clear,clc
a=double(87);
b=double(190);
a+b,a-b,a*b
(2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。
7.编写脚本,计算上面第2题中的表达式。
clear,clc
disp('sin(60)=');
disp(sind(60))
disp('exp(3)=');
disp(exp(3))
disp('cos(3*pi/4)=');
disp(cos(3*pi/4))
8.编写脚本,输出上面第6题中的表达式的值。
clear,clc
clear,clc
a=uint8(87);
b=uint8(190);
a+b,a-b,a*b
2.计算:
(1)
(2) e3
(3)
clear,clc
a=sind(60)
b=exp(3)
c=cos(3*pi/4)
3.设 , ,计算:
(1)
(2)
(3)
clear,clc
u=2;v=3;
a=(4*u*v)/log(v)
报告成绩
1
1)熟悉MATLAB所提供的常用数值计算的函数(方程(组)的求解、插值、拟合);
2)掌握MATLAB二维图形绘制命令及其图形控制(plot、loglog、contour、polar等);
3)熟悉MATLAB三维图形绘制命令及其图形控制(mesh、surf等)。
2
第四章
1. 有如下数据:
x
1
注意:
不要直接给出下列问题中任何一个的最终结果,不要在问题的任何部分使用迭代。
vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343]
(1)创建一个新的向量vecR,使其为vec的转置。
(2)创建一个新的向量vecB,使其为vec中的前半部分与后半部分对换的结果,这样vecB包含的元素为vec的后半部分紧接着vec的前半部分。
clear,clc
vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343];
vecR=vec';
disp('vecR=[]');disp(vecR)
a=length(vec);
vecB=[vec(a/2+1:a) vec(1:a/2)];
q = dblquad(fun2,1,10,1,10)
第八章
1. 编写程序,该程序在同一窗口中绘制函数在 之间的正弦曲线和余弦曲线,步长为 ,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。
clear,clc
x=0:pi/10:2*pi;
f=@(x)(cos(x)-sin(x));
disp('vecN=[]');disp(vecN)
d=vec(2:2:end);
vecG=d(find(d~=2&d~=4));
disp('vecG=[]');disp(vecG)
4.给定以下3个向量:
nums1=[7 1 3 5 32 12 1 99 10 24];
nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11];
(5) 'b'<'B'
clear,clc
4 < 20 , 4 <= 20,4 == 20,4 ~= 20,'b'<'B'
6.设 , , , ,判断下面表达式的值。
(1)
(2)
(3)
(4)
(5)
(6)
clear,clc
a=39;b=58;c=3;d=7;
a>b,a<c,a>b&&b>c,a==d,a|b>c,~~d
nums3=[44 11 25 41 84 77 998 85 2 3 15];
编写脚本文件创建相应的3个向量:newNums1、newNums2和newNums3,分别包含以上3个向量中从第一元素开始且间隔取值的元素。
例如:
numsEX=[6 3 56 7 8 9 445 6 7 437 357 5 4 3]
newsNumsEx=>[6 56 8 445 7 357 4]
注意:
不能直接将相关数值输入答案中,如果再命令提示符下输入:
>>newNumEx=[6 56 8 445 7 357 4]
将不能得分。
提示:
对于3个向量而言,其解决方法应当是一样的,只是变换向量名称而已。
clear,clc
nums1=[7 1 3 5 32 12 1 99 10 24];
nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11];
nums3=[44 11 25 41 84 77 998 85 2 3 15];
newNums1=nums1(1:2:end)
newNums2=nums2(1:2:end)
newNums3=nums3(1:2:end)
思考题
1.MATLAB中,数组与矩阵在表示与应用上有哪些区别。
一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集
数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。但有两点要注意:
disp('第二小题')
z_2 = @(x)(x(1)-x(2)+1)^2;
[x,fvalue,flag,output]=fminsearch(z_2,[0,0])
4. 计算下列积分。
(1)
(2)
clear,clc
fun1=@(x)x+x.^3+x.^5;
q = quad(fun1,-1,1)
fun2=@(x,y)sin(y).*((x+y)./(x.^2+4));
1.1
1.2
1.3
1.4
y
1.00000
1.23368
1.55271
1.99372
2.61170
利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。
clear,clc
x=[1 1.1 1.2 1.3 1.4];
y=[1.00000 1.23368 1.55271 1.99372 2.61170];
第三章
1. 在命令提示符下输入以下两条命令:
>> x = [ 9 3 0 6 3]
>> y = mod((sqrt(length(((x+5).*[1 2 3 4 5]))*5)),3)
求y值为多少?
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;
(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;
(2)数与矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算
实验04051002MATLAB科学计算及绘图
操作成绩
求c、d、e、f的值。
clear,clc
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);
scalar_x=x(1):0.05:x(end);
y_nearest=interp1(x,y,scalar_x,'nearest');
y_linear =interp1(x,y,scalar_x,'linear');
y_spline =interp1(x,y,scalar_x,'spline');
%第二小题
y_2=@(x)x*sin(x);
subplot(1,2,2), holdon,fplot(y_2,[-pi,pi]),title('x*sin(x)');
3. 求下列函数的极值。
(1)
(2)
clear,clc
z_1 = @(x)x(1)^2-(x(2)-1)^2;
[x,fvalue,flag,output]=fminsearch(z_1,[0,0])
《MATLAB及应用》实验指导书
《MATLAB及应用》实验指导书
班级:T1243-7
姓名:柏元强
学号:20120430724
总评成绩:
汽车工程学院
电测与汽车数字应用中心
实验04051003 MATLAB综合实例编程31
实验04051001MATLAB语言基础
操作成绩
报告成绩
1
1)熟悉MATLAB的运行环境
b=((exp(u)+v)^2)/(v^2-u)
c=(sqrt(u-3*v))/(u*v)
4.计算如下表达式:
(1)
(2)
clear,clc
(3-5*i)*(4+2*i)
sin(2-8*i)
5.判断下面语句的运算结果。
(1) 4 < 20
(2) 4 <= 20
(3) 4 == 20
(4) 4 ~= 20
subplot(2,2,3),plot(x,y,'*'),holdon,
plot(scalar_x,y_spline),title('method=spline');
subplot(2,2,4),plot(x,y,'*'),holdon,
y_cubic =interp1(x,y,scalar_x,'cubic');
subplot(2,2,1),plot(x,y,'*'),holdon,
plot(scalar_x,y_nearest),title('method=nearest');
subplot(2,2,2),plot(x,y,'*'),holdon,
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)
(3)创建一个新的向量vecS,使其包含vec中所有小于45的元素,且元素按照vec中的顺序排列。
(4)创建一个新的向量vec3R,使其从vec中从最后一个元素开始,并且间隔三个元素取一个元素,直到第一个元素为止。
(5)创建一个新的向量vecN,使其包含vec中所有等于2或4的元素的索引值。
(6)创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素。
disp('vecB=[]');disp(vecB)
C=find(vec<45);
vecS源自文库vec(C);
disp('vecS=[]');disp(vecS)
vec3R=vec(end:-4:1);
disp('vec3R=[]');disp(vec3R)
vecN=find(vec==2|vec==4);
x1=fzero(f,[0,pi]);
x2=fzero(f,[pi,2*pi]);
plot(x,sin(x),'b-','LineWidth',4),holdon,plot(x,cos(x),'r:','LineWidth',4);
plot(scalar_x,y_cubic),title('method=cubic');
2. 求下列函数的解,并绘制图形。
(1) ,初始点为
(2)
clear,clc
%第一小题
y_1=@(x)exp(x)-x^5; x0 =8;
subplot(1,2,1), holdon,fplot(y_1,[x0,x0+10]),title('exp(x)-x^5');
e = a(vec4) + 5;
vec5 = find(a < 5);
f = vec5.^2;
disp('c=');disp(c)
disp('d=');disp(d)
disp('e=');disp(e)
disp('f=');disp(f)
3. 向量操作时MATLAB的主要部分,使用给出的向量来做下面的练习。
2)掌握MATLAB的矩阵和数组的运算
3)掌握MATLAB符号表达式的创建
4)熟悉符号方程的求解
2
第二章
1.创建double的变量,并进行计算。
(1)a=87,b=190,计算 a+b、a-b、a*b。
clear,clc
a=double(87);
b=double(190);
a+b,a-b,a*b
(2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。
7.编写脚本,计算上面第2题中的表达式。
clear,clc
disp('sin(60)=');
disp(sind(60))
disp('exp(3)=');
disp(exp(3))
disp('cos(3*pi/4)=');
disp(cos(3*pi/4))
8.编写脚本,输出上面第6题中的表达式的值。
clear,clc
clear,clc
a=uint8(87);
b=uint8(190);
a+b,a-b,a*b
2.计算:
(1)
(2) e3
(3)
clear,clc
a=sind(60)
b=exp(3)
c=cos(3*pi/4)
3.设 , ,计算:
(1)
(2)
(3)
clear,clc
u=2;v=3;
a=(4*u*v)/log(v)
报告成绩
1
1)熟悉MATLAB所提供的常用数值计算的函数(方程(组)的求解、插值、拟合);
2)掌握MATLAB二维图形绘制命令及其图形控制(plot、loglog、contour、polar等);
3)熟悉MATLAB三维图形绘制命令及其图形控制(mesh、surf等)。
2
第四章
1. 有如下数据:
x
1
注意:
不要直接给出下列问题中任何一个的最终结果,不要在问题的任何部分使用迭代。
vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343]
(1)创建一个新的向量vecR,使其为vec的转置。
(2)创建一个新的向量vecB,使其为vec中的前半部分与后半部分对换的结果,这样vecB包含的元素为vec的后半部分紧接着vec的前半部分。
clear,clc
vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343];
vecR=vec';
disp('vecR=[]');disp(vecR)
a=length(vec);
vecB=[vec(a/2+1:a) vec(1:a/2)];
q = dblquad(fun2,1,10,1,10)
第八章
1. 编写程序,该程序在同一窗口中绘制函数在 之间的正弦曲线和余弦曲线,步长为 ,线宽为 4 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记。
clear,clc
x=0:pi/10:2*pi;
f=@(x)(cos(x)-sin(x));
disp('vecN=[]');disp(vecN)
d=vec(2:2:end);
vecG=d(find(d~=2&d~=4));
disp('vecG=[]');disp(vecG)
4.给定以下3个向量:
nums1=[7 1 3 5 32 12 1 99 10 24];
nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11];
(5) 'b'<'B'
clear,clc
4 < 20 , 4 <= 20,4 == 20,4 ~= 20,'b'<'B'
6.设 , , , ,判断下面表达式的值。
(1)
(2)
(3)
(4)
(5)
(6)
clear,clc
a=39;b=58;c=3;d=7;
a>b,a<c,a>b&&b>c,a==d,a|b>c,~~d
nums3=[44 11 25 41 84 77 998 85 2 3 15];
编写脚本文件创建相应的3个向量:newNums1、newNums2和newNums3,分别包含以上3个向量中从第一元素开始且间隔取值的元素。
例如:
numsEX=[6 3 56 7 8 9 445 6 7 437 357 5 4 3]
newsNumsEx=>[6 56 8 445 7 357 4]
注意:
不能直接将相关数值输入答案中,如果再命令提示符下输入:
>>newNumEx=[6 56 8 445 7 357 4]
将不能得分。
提示:
对于3个向量而言,其解决方法应当是一样的,只是变换向量名称而已。
clear,clc
nums1=[7 1 3 5 32 12 1 99 10 24];
nums2=[54 1 456 9 20 45 48 72 61 32 10 94 11];
nums3=[44 11 25 41 84 77 998 85 2 3 15];
newNums1=nums1(1:2:end)
newNums2=nums2(1:2:end)
newNums3=nums3(1:2:end)
思考题
1.MATLAB中,数组与矩阵在表示与应用上有哪些区别。
一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集
数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。但有两点要注意:
disp('第二小题')
z_2 = @(x)(x(1)-x(2)+1)^2;
[x,fvalue,flag,output]=fminsearch(z_2,[0,0])
4. 计算下列积分。
(1)
(2)
clear,clc
fun1=@(x)x+x.^3+x.^5;
q = quad(fun1,-1,1)
fun2=@(x,y)sin(y).*((x+y)./(x.^2+4));
1.1
1.2
1.3
1.4
y
1.00000
1.23368
1.55271
1.99372
2.61170
利用本章介绍的几种插值方法对其进行插值,得到每隔0.05的结果。
clear,clc
x=[1 1.1 1.2 1.3 1.4];
y=[1.00000 1.23368 1.55271 1.99372 2.61170];
第三章
1. 在命令提示符下输入以下两条命令:
>> x = [ 9 3 0 6 3]
>> y = mod((sqrt(length(((x+5).*[1 2 3 4 5]))*5)),3)
求y值为多少?
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;
(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符;
(2)数与矩阵加减、矩阵除法在数学是没有意义的,在MATLAB中为简便起见,定义了这两类运算
实验04051002MATLAB科学计算及绘图
操作成绩
求c、d、e、f的值。
clear,clc
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);
scalar_x=x(1):0.05:x(end);
y_nearest=interp1(x,y,scalar_x,'nearest');
y_linear =interp1(x,y,scalar_x,'linear');
y_spline =interp1(x,y,scalar_x,'spline');
%第二小题
y_2=@(x)x*sin(x);
subplot(1,2,2), holdon,fplot(y_2,[-pi,pi]),title('x*sin(x)');
3. 求下列函数的极值。
(1)
(2)
clear,clc
z_1 = @(x)x(1)^2-(x(2)-1)^2;
[x,fvalue,flag,output]=fminsearch(z_1,[0,0])
《MATLAB及应用》实验指导书
《MATLAB及应用》实验指导书
班级:T1243-7
姓名:柏元强
学号:20120430724
总评成绩:
汽车工程学院
电测与汽车数字应用中心
实验04051003 MATLAB综合实例编程31
实验04051001MATLAB语言基础
操作成绩
报告成绩
1
1)熟悉MATLAB的运行环境
b=((exp(u)+v)^2)/(v^2-u)
c=(sqrt(u-3*v))/(u*v)
4.计算如下表达式:
(1)
(2)
clear,clc
(3-5*i)*(4+2*i)
sin(2-8*i)
5.判断下面语句的运算结果。
(1) 4 < 20
(2) 4 <= 20
(3) 4 == 20
(4) 4 ~= 20