matlab基础与应用部分习题答案
Matlab编程与应用习题和一些参考答案
Matlab编程与应用习题和一些参考答案Matlab 上机实验一、二3.求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧=+-+-=-+=++-=--+41025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\b4.设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'>> C2=A'*B>> C3=A.*B>> inv(C1)>> inv(C2)>> inv(C3)5.设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。
>> x=linspace(0,2*pi,101);>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>> plot(x,y,'r')6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
(mean var )a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)10.利用帮助查找limit 函数的用法,并自己编写,验证几个函数极限的例子。
MATLAB语言基础与应用(第二版)第5章 习题答案
第5章习题与答案5.1用矩阵三角分解方法解方程组123123123214453186920x x x x x x x x x +-=⎧⎪-+=⎨⎪+-=⎩ 解答:>>A=[2 1 -1;4 -1 3;6 9 -1] A =2 1 -1 4 -13 6 9 -1 >>b=[14 18 20]; b =14 18 20 >> [L, U, P]=lu(A) L =1.0000 0 0 0.6667 1.0000 0 0.3333 0.2857 1.0000 U =6.0000 9.0000 -1.0000 0 -7.0000 3.6667 0 0 -1.7143 P =0 0 1 0 1 0 1 0 0 >> y=backsub(L,P*b’) y =20.0000 4.6667 6.0000 >> x=backsub(U,y) x =6.5000 -2.5000 -3.5000 5.2 Cholesky 分解方法解方程组123121332352233127x x x x x x x ++=⎧⎪+=⎨⎪+=⎩ 解答:>> A=[3 2 3;2 2 0;3 0 12] A =3 2 32 2 03 0 12>> b=[5;3;7]b =537>> L=chol(A)L =1.7321 1.1547 1.73210 0.8165 -2.44950 0 1.7321>> y=backsub(L,b)y =-11.6871 15.7986 4.0415>> x=backsub(L',y)x =-6.7475 28.8917 49.93995.3解答:观察数据点图形>> x=0:0.5:2.5x =0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3]y =2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)图5.1 离散点分布示意图从图5.1观察数据点分布,用二次曲线拟合。
matlab试题及答案
matlab试题及答案# MATLAB试题及答案一、选择题1. MATLAB的基本数据单位是:A. 矩阵B. 向量C. 标量D. 数组答案:A2. 下列哪个命令可以用来绘制函数图形?A. `plot`B. `graph`C. `draw`D. `chart`答案:A3. MATLAB中,以下哪个是正确的矩阵转置操作?A. `transpose(A)`B. `A'`C. `A^T`D. `flip(A)`答案:B二、简答题1. 简述MATLAB中矩阵的基本操作。
答案:在MATLAB中,矩阵是最基本的数据结构,可以进行加、减、乘、除等基本运算。
矩阵的创建可以使用方括号`[]`,例如`A = [1 2;3 4]`。
矩阵的转置使用单引号`'`,例如`A'`。
矩阵的求逆使用`inv`函数,例如`inv(A)`。
2. MATLAB中如何实现循环结构?答案:MATLAB中实现循环结构主要有两种方式:`for`循环和`while`循环。
`for`循环用于已知迭代次数的情况,例如:```matlabfor i = 1:5disp(i);end````while`循环用于迭代次数未知的情况,例如:```matlabi = 1;while i <= 5disp(i);i = i + 1;end```三、计算题1. 给定矩阵A和B,请计算它们的乘积C,并求C的行列式。
A = [1 2; 3 4]B = [5 6; 7 8]答案:首先计算矩阵乘积C:```matlabC = A * B;```然后计算C的行列式:```matlabdetC = det(C);```结果为:```matlabC = [19 22; 43 50]detC = -16```2. 编写一个MATLAB函数,计算并返回一个向量的范数。
答案:```matlabfunction norm_value = vector_norm(v)norm_value = norm(v);end```四、编程题1. 编写一个MATLAB脚本,实现以下功能:- 随机生成一个3x3的矩阵。
MATLAB基础及其应用教程周开利邓春晖课后答案
第三章习题及参考答案解答:>> p=[1 -1 -1];>> roots(p)ans =-0.61801.6180解答:取n=5,m=61>> x=linspace(0,2*pi,5); y=sin(x);>> xi=linspace(0,2*pi,61);>> y0=sin(xi);>> y1=interp1(x,y,xi);>> y2=interp1(x,y,xi,'spline');>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');>> subplot(2,1,1); plot(xi,y1-y0);grid on >> subplot(2,1,2); plot(xi,y2-y0);grid on分段线性和三次样条插值方法与精确值之差取n=11,m=61>> x=linspace(0,2*pi,11); y=sin(x);>> xi=linspace(0,2*pi,61);>> y0=sin(xi);>> y1=interp1(x,y,xi);>> y2=interp1(x,y,xi,'spline');>> plot(xi,y0,'o',xi,y1,xi,y2,'-.');>> subplot(2,1,1); plot(xi,y1-y0);grid on>> subplot(2,1,2); plot(xi,y2-y0);grid on分段线性和三次样条插值方法与精确值之差解答:>> x=[0,300,600,1000,1500,2000];>> y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491]; >> xi=0:100:2000;>> y0=1.0332*exp(-(xi+500)/7756);>> y1=interp1(x,y,xi,'spline');>> p3=polyfit(x,y,3);>> y3=polyval(p3,xi);>> subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.'); >> subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);grid on插值和拟合方法相比较,都合理,误差也相近。
MATLAB及其应用课后习题解答
5
“MATLAB 及其应用”课程作业
图 4- 2 画出函数图像
第5章
1. 已知椭圆的长、短轴 a 4, b 2 ,用“小红点线”画如下图所示的椭圆
x a cos t 。 y b sin t
(提示:参量 t ;点的大小;axis equal) 答 : 运 行 :clf; a=4;b=2;t=0:pi/80:2*pi;x=a*cos(t);y=b*sin(t);plot(x,y,’r’,’markersize’,15);axis equal;xlabel(‘x’);ylabel(‘y’);shg;结果如图 5-1 所示:
1
“MATLAB 及其应用”课程作业
a5=sin(sym(pi/4)+exp(sym(0.7+pi/3))); a6=sin(sym(pi/4)+sym(exp(0.7+pi/3))); a7=sin(sym(pi/4+exp(0.7+pi/3))); a8=sym(sin(pi/4+exp(0.7+pi/3))); da2 = vpa(a1-a2,30) da3 = vpa(a1-a3,30) da4 = vpa(a1-a4,30) da5 = vpa(a1-a5,30) da6 = vpa(a1-a6,30) da7 = vpa(a1-a7,30) da8 = vpa(a1-a8,30) 结果如图 2-2 所示: 只有 a2 是精准的,观察可知,这是由 于 sym('Num')和 sym(Num)的区别带来 图 2- 2 vpa 观察误差 的前者以字符串的形式传给符号运算内 核,可以保留完整的精度;而后者经过浮点数运算之后再转换为符号类型,存在精度损 失。 3.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。 sym('sin(w*t)') , sym('a*exp(-X)' ) , sym('z*exp(j*th)') 答:分别为 w,a,z,具体图 2-3 所示。
matlab习题及答案
matlab习题及答案Matlab习题及答案Matlab是一种强大的数学计算软件,被广泛应用于科学计算、数据分析和工程设计等领域。
在学习和使用Matlab的过程中,习题是一种非常有效的学习方式。
本文将给出一些常见的Matlab习题及其答案,帮助读者更好地掌握Matlab的使用技巧。
一、基础习题1. 计算1到100之间所有奇数的和。
解答:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个函数,计算任意两个数的最大公约数。
解答:```matlabfunction gcd = computeGCD(a, b)while b ~= 0temp = b;a = temp;endgcd = a;end```3. 编写一个程序,生成一个5×5的随机矩阵,并计算矩阵的行和列的平均值。
解答:```matlabmatrix = rand(5);row_average = mean(matrix, 2);col_average = mean(matrix);disp(row_average);disp(col_average);```二、进阶习题1. 编写一个程序,实现插入排序算法。
解答:```matlabfunction sorted_array = insertionSort(array)n = length(array);for i = 2:nj = i - 1;while j > 0 && array(j) > keyarray(j+1) = array(j);j = j - 1;endarray(j+1) = key;endsorted_array = array;end```2. 编写一个程序,实现矩阵的转置。
解答:```matlabfunction transposed_matrix = transposeMatrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```3. 编写一个程序,实现二分查找算法。
matlab基础与应用教程课后答案
matlab基础与应用教程课后答案【篇一:matlab教程基本应用练习题及解答】txt>要求:将每题的答案(命令行和运行结果、图片或m文件的文件名及具体内容)直接拷贝插入到各题的下方:(1)若为命令行,要求将提示符“”一起拷入,并在右侧用“%”注明命令行的每条命令的作用;(2)若为多个运行结果,拷入后要求解释每个结果具体对应题目中的哪个要求,也在右侧用“%”注明;(3)如果为m文件,除了将文件名和此文件的具体内容全部拷入外,再将所有原始m文件和本练习题电子版放在一个以“专业班级+本人姓名+学号”命名的文件夹内一起上传。
ans =1 0 00 1 00 0 1ans =0 0 00 0 0ans =1 1 11 1 11 1 11 1 120+40*rand(1,10) %生成10个在区间[20,60]上均匀分布的随机数。
ans =44.617351.677556.872549.528327.050636.228257.418856.676236 .410855.7460二.1)计算向量(2,4,6,8)的最大值,最小值,平均值,中值,排序,总和值; max([2,4,6,8])%最大值ans =8min([2,4,6,8])% 最小值ans =2mean([2,4,6,8])% 平均值ans =5median([2,4,6,8])% 中值ans =5sort([2,4,6,8])% 排序ans =2 4 6 8sum([2,4,6,8])% 总和值ans =202)在行向量(2,4,6,8)和(1,3,5,7)之间实施加减乘除及幂运算; a=[2 4 6 8];b=[1 3 5 7];a+b%加ans =3 7 11 15a-b%减ans =1 1 1 1a.*b%乘ans =2 12 30 56a./b%除ans =2.0000 1.3333 1.2000 1.1429a.^b%幂ans =2 64 7776 20971523)在向量(1,3,5)与标量2之间实施加减乘除及幂运算。
matlab基础与应用部分习题答案
作业一4、写出完成下列操作的命令。
(1)将矩阵 A 第2~5 行中第1,3,5 列元素赋给矩阵B。
>> M=[0:1:48];>> A=reshape(M,7,7)0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 476 13 20 27 34 41 48 >> B=A(2:5,1:2:5)B =1 15 292 16 303 17 314 18 32( 2)删除矩阵 A 的第七行元素。
>> A(7,:)=[]A =0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 47 (3) 将矩阵A 的每个元素值加30。
>> A=A+30A =30 37 44 51 58 65 7231 38 45 52 59 66 7332 39 46 53 60 67 7433 40 47 54 61 68 7534 41 48 55 62 69 7635 42 49 56 63 70 77(4 求矩阵A 的大小和维素。
sizeA = size(A)dA = ndims(A) sizeA = dA =2(5)将向量t的0元素用机器零来代替。
>> t=[1 2 3 4 0 5];t =1 2 3 4 0 5>> find(t==0)ans =5>> t(5)=epst =1.00002.00003.00004.0000 0.00005.0000(6)将含有12个元素的向量x 转换成3*4 矩阵。
>> x=[0:11]x =0 1 2 3 4 5 6 7 8 9 10 >>11 y=reshape(x,3,4)y =0 3 6 91 4 7 102 5 8 117)求一个字符串的ASCII。
matlab基础练习题及答案
第1章MATLAB基础1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口。
在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口。
在独立窗口的Desktop菜单中选择Dock...项就可以将独立的窗口重新放置到桌面上。
1.5 如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
1.6 存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。
在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。
1.9 在MATLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器。
Matlab软件基础及其应用学习通课后章节答案期末考试题库2023年
Matlab软件基础及其应用学习通课后章节答案期末考试题库2023年1.一元函数图像常用的作图命令是()参考答案:plot2.语句>> s2=dsolve(‘D2y=6*x’,’y(0)=0,Dy(0)=2’,’x’)中 D2y是什么意思()参考答案:y的二阶导数3.椭圆所围成的图形绕x轴旋转一周所得图形体积可以用MATLAB求解,其命令是()参考答案:>>syms x y a b4.x=1:0.5:10的步长是(),x取点的总个数是()参考答案:0.5;215.matlab的变量名可以不区分大小写参考答案:错6.函数作图的基本原理是描点法,所以第一步先要给出自变量的取点参考答案:对7.函数名或者变量名需要尽可能取的有意义,方便以后查找参考答案:对8.matlab中最重要的工作窗口是command window, 提示符是“>>”参考答案:对9.运行以下程序,绘制的是3条直线。
X=[1,2,3];Y=[1,2,3];Z=[1,2,3];plot3(X,Y,Z,'b')参考答案:×10.>> t=0:0.5:10; >> y1=exp(-0.1*t); >> y2=exp(-0.2*t); >> y3=exp(-0.5*t); >>plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.^g')画的是几条曲线()参考答案:311.重复利用历史输入过的命令,可以用()按键参考答案:↑12.定义符号变量要用到的命令是()参考答案:syms13.求该积分用到的命令是()参考答案:int(f(x),x,a,b)14.factor命令可以多项式函数进行()参考答案:因式分解15.MATLAB中求导数的命令是()参考答案:diff16.diff(f(x),’x’,3)表示求()阶导数参考答案:317.命令行>> syms x y a b c;>> y=a*x^2+b*x+c;>> diff(y,b)运行后的结果是参考答案:x18.命令行窗口已经输入>> x=3;>> y=x^(1/4)+2.15*sin(x)如果需要计算函数y在x=3的值,再继续录入参考答案:y=x^(1/4)+2.15*sin(x)19.绘制曲线,x的取值范围为[-5,5]。
Matlab基础与应用教程答案
第1章一、思考题4.( 1) B=A(2:5,1:2:5)(2)A(7)=[](3)A=A+30(4)size(A)( 5) t(find(t==0))=eps(6)t=reshape(x,3,4)(7)abs('matlab')(8)char(93)5.A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7] (1)B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C(2)A(find(A>=50 & A<=100)) 二、实验题=-74/180*pi;y=-27/180*pi;sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi一・・,exp*a).*sin(a+=[2,4;,5];log(x+sqrt(1+x.*x))/24.A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0];(1)A*Bans =129 432 41977 -407 - 1052402 591 12489A.*Bans =3 -108 13468 -360 518783 270 0(2) A A3ans =-28917 240246 -4368137883 -259101 27669171333 252504 38673A.A3ans =27 157464 839304 -91125 343658503 729000 3375( 3) A/Bans =B/A ans =(4)[A,B]ans =3 54 2 1 -2 6734 -45 7 2 8 7487 90 15 9 3 0[&[1,3],:)砂2]ans =3 54 287 90 15600 183 -81684 282 72615 6 825=1+2i;b=3+4i; c=exp(pi*i/6) c =+ c+a*b/(a+b) ans =+ 第2章一、思考题=0; for n=0:63s=s+2A n;end disp(s)n=0:63;s=sum(2.An)二、实验题1.x=input( ' 输入一个四位整数:' );y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,1 0)] z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)2. gh=input( ' 输入工号' ); h=input( ' 输入工时' );dj=84;if h>120gz=dj*120+*dj*(h-120);elseif h<60gz=dj*h-700;else gz=dj*h;end format bank; display([gh,gz])3. 循环结构n=input( 'input n:' );s=0;for k=1:n s=s+1/k A2;end display(sqrt(s*6)) 向量运算n=input( 'input n:' ); k=1:n;display(sqrt(sum(1./k.A2)*6))4.y=0;k=0;while y<3k=k+1; y=y+1/(2*k-1);end display([k-1,y-1/(2*k-1)])5.x0=0;x=1;k=0;a=input( 'a=' ); b=input( 'b=' );while abs(x-x0)>=1e-5 && k<500 x0=x;x=a/(b+x0);k=k+1;end display([k,x]); display([(-b+sqrt(bA2+4*a))/2,(-b-sqrt(bA2+4*a))/2]);6.y=fun(40)/(fun(30)+fun(20))(1)函数文件function f=fun(n) f=n+log(nA2+5);(2)函数文件function f=fun(n) a=1:n;f=sum(a.*(a+1));第3章一、思考题4.t=0::;y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);5.x=-10::10; y=linspace(-6,6,size(x,2))z=x.A3+3*x.*y.A2;plot3(x,y,z)6.x=100:100:400;y=100:100:400;z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334]; [X,Y]=meshgrid(x,y);mesh(X,Y,z)二、实验题1.( 1 ) x=-10::10;plot(x,x-x.A3/3/2)( 2) plot(x,exp(-x.*x/2)/2/pi)(3)x=-8::8;plot(x,sqrt((64-x.*x)/2))( 4) t=0:pi/100:6*pi;plot(t.*sin(t),t.*cos(t))2.( 1) x1=linspace(0,1,100);y1=2*;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);plot(x1,y1,'r-',x,y,'b:');text,1,'y='); text,,'x=sin(3t)cos(t)');text,,'y=sin(3t)sin(t)');(2)subplot(1,2,1);scatter(x1,y1,10)title('y=');subplot(1,2,2);scatter(x,y,10)3.subplot(1,2,1);x=1:1:100; y=sin(1./x);plot(x,y) subplot(1,2,2);fplot('sin(1/x)',[1,100])4.subplot(2,2,1);bar(t,y);subplot(2,2,2);stairs(t,y);subplot(2,2,3);stem(t,y) subplot(2,2,4); semilogy(t,y);3.theta=linspace(-pi,pi,100); ro=5.*cos(theta)+4; polar(theta,ro); fi=linspace(0,2*pi,100);a=1 r=a.*(1+cos(fi));polar(fi,r);4.plot3(x,y,z);t=0::1;x=t;y=t.A2;z=t.A3;plot3(x,y,z);7.x=-30::0;y=0::30; [x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.A2+y.A2))./sqrt(1+x.A2+y.A2); meshc(x,y,z);8. x=linspace(-3,3,100);y=linspace(-3,3,100);[x y]=meshgrid(x,y);fxy=-5./(1+x.A2+y.A2);i=find(abs(x)<= & abs(y)<=; fxy(i)=NaN;surf(x,y,fxy)9.u=linspace(1,10,100);v=linspace(-pi,pi,100); [u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.A2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.A2; surf(x,y,z);shading interp;light('position',[1,0,1]);10. t=0:pi/100:2*pi; y=sin(t);comet(t,y) 第4章一、思考题5.(1)A=eye(3);(2)C=100+(200-100)*rand(5,6);( 3) D=1+sqrt*randn(1,500);( 4) E=ones(size(A));( 5) A=A+30*eye(size(A));( 6) B=diag(diag(A))二、实验题1.P=pascal(5);H=hilb(5); Dp=det(P);Dh=det(H); Kp=cond(P);Kh=cond(H);P矩阵的性能更好,因为Kp较小2.A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3] B=[3,pi/2,45;32,-76,sqrt(37);5,72,;exp(2),0,97] A1=diag(A);B1=diag(B);A2=triu(A);B2=triu(B); A3=tril(A);B3=tril(B); rA=rank(A);rB=rank(B);nA=norm(A);nb=norm(B); cA=cond(A);cB=cond(B);3.A=[31,1,0;-4,-1,0;4,-8,-2] ;[V,D]=eig(A);4.A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2])b=[1,0,0,0,0]';x1=inv(A)*b; x2=A\b; [L,U]=lu(A); x3=U\(L\b); [Q,R]=qr(a); [Q,R]=qr(A); x4=R\(Q\b) R=chol(A); x5=R\(R'\b) 5.B=sparse(A); x1=inv(B)*b; x2=B\b; [L,U]=lu(B); x3=U\(L\b); 第5章一、思考题3.A=randn(10,5); mean(A) std(A) max(max(A)) min(min(A)) sum(A,2) sum(sum(A)) sort(A,1) sort(A,2,'descend') 二、实验题1.A=rand(1,30000); mean(A) std(A) max(A) min(A) size(find(A>)/size(A)2.h=[466,715,950,1422,1635]; w=[,,,,];hh=[500,900,1500]; ww=interp1(h,w,hh,'spline')3.x=linspace(1,10,50); y=log(x);第6章一、思考题2.fx=i nlin e('1./(1+x.A 2)');[I,n]=quad(fx,-100000,100000,1e-3); [I,n]=quadl(fx,-100000,100000,1e-3); x=-100000::100000; y=1./(1+x.*x);f=polyfit(x,y,5); yy=polyval(f,x); plot(x,y,'r-',x,yy,'g.') 4. N=64; T=5;t=linspace(0,T,N); x=3*exp(-t); % dt=t(2)-t(1); f=1/dt; X=fft(x); F=X(1:N/2+1); f=f*(0:N/2)/N;plot(f,abs(F),'-*') % %% 求各采样点样本值 x% % %采样点数 采样时间终点给岀N 个采样时间ti(l=1:N) 采样周期采样频率 (Hz)计算 x 的快速傅立叶变换 X% F(k)=X(k)(k=1:N/2+1)% 使频率轴 f 从零开始 % 绘制振幅 - 频率图xlabel('Frequency');ylabel('|F(k)|')5.(1)p1=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];p12=conv(p1,p2);p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3]; roots(p)(2)A=[-1,4,3;2,1,5;0,5,6];Px=polyval(p,A) Pxm=polyvalm(p,A)6.(1) z=fzero('3*x-sin(x)+1',0)(2)建立函数文件 function F=myfun(X)x=X(1);y=X(2); F(1)=x*x+y*y-9;F(2)=x+y-1; 在命令窗口中输入以下命令: x=fsolve(@myfun,[3,0]',optimset('Display','of f'))trapz(x,y);3.(1)fx=inline('-2*y+2*x*x+2*x');[t,y]=ode23(fx,[0,],1)(2)fx=inline('y-exp(x)*cos(x)');[t,y]=ode23(fx,[0,3],1)二、实验题1.for x=1:3fx=[x,xA2,xA3;1,2*x,3*x;0,2,6*x]; diff(fx)end2.(1 ) x=0::1;y=x.A10+10.Ax+1./log10(x);dy=diff(y)/;(2)x=0::1;y=log(1+x);dy=diff(y,2)/;plot(x(1:99),dy)3.(1 ) fx=inline( 'x.A2.*sqrt(2*x.*x+3)');quad(fx,1,5)(2)fx=inline( 'x./sin(x).A2' ); quad(fx,pi/4,pi/3)(3)fx=inline( 'abs(cos(x+y))' ); dblquad(fx,0,pi,0,pi)(4)syms x y;fx=x*y;int(int(fx,yA2,y+2),-1,2)x的积分区间为【0, 2】时fx=inline( 'x.*y' );dblquad(fx,0,2,-1,2)4.x=::;y=[,,,,,,];trapz(x,y)5.(1)yp=i nlin e( '-+si n( 10*x))*y' );[t,y]=ode23(yp,[0,5],1);(2)令x1y, x2y ,x3 y'',则可写出原方程的状态方程形式: x1x2X2 X3cos 1x3cost 5 X3 X2 X1(t 1)2 3 sin t0 1 0 X1 0=>> x20 0 1 X2 01 / 5cos2t X3 12X3 cost3 sint (t 1)2建立函数文件fun cti on y=ztfu n( t,x)b=[0;0;cos(t)];y=[0,1,0;0,0,1;-1/(3+si n( t)),-1,5*cos(2*t)/(t+1)A2]*x+b; 解微分方程组[t,y]=ode23(@ztfu n,[0,5],[1;0;2]);6.建立函数文件fun cti on yy=ztfu n( t,y)yy=[ y( 2)*y(3);-y(1)* y(3) ;*y(1)*y(2)];解微分方程组[t,y]=ode23(@ztfu n,[0,5],[0;1;1])第7章一、思考题3.(1 )数值积分fx=i nlin e('exp(x).*(1+exp(x)).A2'); quad(fx,0,log(2)) 符号积分f=sym('exp(x)*(1+exp(x))A2');v=in t(f,0,log (2));eval(v)(2 )略二、实验题1.A=sym('[1,2,3;x,y, z; 3,2,1]')rank(A)inv(A)det(A)2.(1)y=sym('sqrt(x+sqrt(x+sqrt(x)))');y1=diff(y)y2=diff(y,'x',2)(2)syms x y;fxy=si n( x A2*y)*exp(-x A2-y);diff(diff(fxy,x),y)3.(1)syms xin t(1/(1+xA4))(2)syms x tin t((-2*x*x+1)/(2*x*x-3*x+1)A2,x,cos(t),exp(2*t))4.syms n xsymsum(1/(2* n+1)/(2*x+1)A(2* n+1), n,0,i nf)symsum(1/(2* n+1)/(2*x+1)A(2* n+1), n, 0,5)5.(1)syms xtaylor((exp(x)+exp(-x))/2,5,0)(2)syms a xtaylor(exp(-5*x)*si n(3*x+pi/3),5,a)6.(1)x=solve(sym('xA3+a*x+1=0'))(2)[x y]=solve(sym('sqrt(xA2+yA2)-100=0,3*x+5*y-8=0'))y' y17.方程转化为:’,严y1' y 1 一符号解[y1,y11]=dsolve(,Dy=y1,Dy1+y=1-t A2/pi,,,y(-2)=5,y1(-2)=5',,t,)数值解编写函数文件fun cti on yy=ztfu n( t,y)yy=[y(2);1-tA2/pi-y(1)];在命令窗口输入以下命令[t,y]=ode45(@ztfu n,[-2,7],[-5;5]);t=li nspace(-2,7,49)y2=y8.[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')第9章二、实验题1.(1 )新建一个Blank GUI。
matlab教材习题答案
matlab教材习题答案Matlab是一种广泛应用于科学与工程领域的计算机编程语言和环境。
它具备强大的数值计算和数据可视化功能,被广泛用于数据分析、信号处理、图像处理、机器学习等领域。
对于初学者而言,掌握Matlab的基本语法和常用函数是非常重要的,而教材习题则是帮助学生巩固所学知识的重要资源。
本文将为大家提供一些Matlab教材习题的参考答案,以帮助读者更好地学习和应用Matlab。
1. 基本语法练习题1.1 计算并输出1到10的平方for i = 1:10fprintf('%d的平方是:%d\n', i, i^2);end1.2 计算并输出1到10的阶乘for i = 1:10fact = 1;for j = 1:ifact = fact * j;endfprintf('%d的阶乘是:%d\n', i, fact);end2. 数值计算练习题2.1 求解一元二次方程的根a = 1;b = -3;c = 2;delta = b^2 - 4*a*c;x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);fprintf('一元二次方程的根为:%f, %f\n', x1, x2);2.2 求解线性方程组的解A = [1 2; 3 4];B = [5; 6];X = inv(A) * B;fprintf('线性方程组的解为:%f, %f\n', X(1), X(2));3. 数据处理练习题3.1 统计一个数组中的最大值、最小值和平均值data = [1, 2, 3, 4, 5];max_value = max(data);min_value = min(data);average_value = mean(data);fprintf('最大值:%f\n最小值:%f\n平均值:%f\n', max_value, min_value, average_value);3.2 对一个矩阵进行排序matrix = [4 2 3; 1 5 6; 9 8 7];sorted_matrix = sort(matrix);fprintf('排序后的矩阵为:\n');disp(sorted_matrix);4. 图像处理练习题4.1 读取并显示一张图片image = imread('image.jpg');imshow(image);4.2 对一张图片进行灰度化处理gray_image = rgb2gray(image);imshow(gray_image);5. 信号处理练习题5.1 生成并绘制正弦信号t = 0:0.01:2*pi;x = sin(t);plot(t, x);5.2 对一段音频信号进行傅里叶变换[y, fs] = audioread('audio.wav');Y = fft(y);plot(abs(Y));通过以上几个例子,我们可以看到Matlab的强大功能和灵活性。
MATLAB基础与应用第二版课后习题答案
通信电路仿真上机试题班级:姓名:学号:第一章4.gcd函数用于求两个数的最大公约数。
现拥有help命令查看该函数的用法,然后利用该函数15和35的最大约数。
程序: >> help gcdGCD Greatest common divisor.G = GCD(A,B) is the greatest common divisor of correspondingelements of A and B. The arrays A and B must contain non-negativeintegers and must be the same size (or either can be scalar).GCD(0,0) is 0 by convention; all other GCDs are positive integers.[G,C,D] = GCD(A,B) also returns C and D so that G = A.*C + B.*D.These are useful for solving Diophantine equations and computingHermite transformations.See also LCM.结果:>> g=gcd(15,35)g =56.以致三角形的三边a=9.6,b=13.7,c=19.4,求三角形的面积。
提示:利用海伦公式area=sqrt(s*(s-a)*(s-b)*(s-c))计算,其中s=(a+b+c)/2。
程序:clearclca=9.6,b=13.7,c=19.4s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c))结果:a = 9.6000 b =13.7000 c = 19.4000 s = 21.3500 area = 61.1739第二章5.计算下列分段函数0 x<=5F(x)= (x-3)/4 5<x<=102*x x>10程序:clearclcx=input('请输入一个数,x=');if x<=5y=0;elseif x>5&x<=10y=(x-3)/4;else x>10y=2*x;endy结果:请输入一个数,x=11y =228.已知S=1+2+2^2+2^3+…+2^63,求S 的值。
matlab试题及答案
matlab试题及答案一、单项选择题(每题2分,共10分)1. MATLAB中用于创建向量的命令是:A. vectorB. arrayC. linspaceD. colon答案:D2. 在MATLAB中,以下哪个函数用于计算矩阵的行列式?A. detB. rankC. invD. eig答案:A3. MATLAB中用于进行矩阵转置的运算符是:A. 'B. .C. ^D. !答案:A4. 若A是一个3x3的矩阵,执行命令A(2,:)=0;后,矩阵A的第二行将变为:A. [0 0 0]B. [1 0 0]C. [0 1 0]D. [0 0 1]答案:A5. MATLAB中,以下哪个函数用于绘制三维曲面图?A. plotB. surfC. barD. hist答案:B二、填空题(每题3分,共15分)1. MATLAB中,使用________命令可以清除所有变量。
答案:clear2. 若要在MATLAB中创建一个从0到1的100个元素的向量,可以使用命令________。
答案:linspace(0,1,100)3. MATLAB中,使用________函数可以计算矩阵的特征值。
答案:eig4. 在MATLAB中,________函数用于计算两个矩阵的点乘。
答案:dot5. 若要在MATLAB中绘制一个圆,可以使用________函数。
答案:plot三、简答题(每题5分,共20分)1. 请解释MATLAB中矩阵索引的概念。
答案:在MATLAB中,矩阵索引指的是通过行号和列号来访问矩阵中特定元素的过程。
例如,A(2,3)表示访问矩阵A的第二行第三列的元素。
2. MATLAB中如何实现矩阵的元素乘法?答案:在MATLAB中,矩阵的元素乘法可以通过使用点乘运算符(.*)来实现。
例如,C = A .* B,其中A和B是相同大小的矩阵。
3. 请说明MATLAB中如何使用循环结构。
答案:MATLAB中可以使用for循环和while循环两种循环结构。
matlab基础与应用教程答案
8-1建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键之后显示出Left Button Pressed 字样。
本体程序:clc;hf=figure('color','r','windowbuttondownfcn','axis off;text(0.1,0.5,''Left Button Pressed'',''fontsize'',30)')运行结果:hf =18-3利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。
(1)2)cos(2.0+=-x e y xclc;x=0:5*pi;y=exp(-0.2*x).*cos(x)+2;h=plot(x,y);set(h,'Color',[1,0,0],'LineStyle',':','LineWidth',2);(2)⎪⎩⎪⎨⎧==325ty t x 程序:t=0:2:100;x=t.*t;y=5*t.^3;hf=plot(x,y);set(hf,'color','b','linestyle',':','marker','p','linewidth',0.3);8-4利用图形对象绘制下列三维图形,要求与上题相同。
(1)⎪⎩⎪⎨⎧===t z t y t x sin cos程序:t=0:0.1:2*pi;x=cos(t);y=sin(t);z=t;hf=plot3(x,y,z);运行结果:8-5以任意位置子图形式绘制出正弦、余弦、正切和余切函数曲线。
MATLAB程序设计与应用(第二版)课后实验答案
Matlab课后实验题答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)21ln(2z x=,其中2120.455ix+⎡⎤=⎢⎥-⎣⎦(3)0.30.330.3sin(0.3)ln, 3.0, 2.9,,2.9,3.0 22a ae e az a a--+=++=--(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2.52. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A —B+I(其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B ]和[A ([1,3],:);B^2] 解:3. 设有矩阵A 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况。
4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2).建立一个字符串向量 例如: ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1。
设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
MATLAB基础与应用教程 习题答案 作者 蔡旭晖 刘卫国 蔡立燕 第1-8章答案
第1章一、思考题4. (1) B=A(2:5,1:2:5)(2)A(7)=[](3) A=A+30(4)size(A)(5) t(find(t==0))=eps(6)t=reshape(x,3,4)(7)abs('matlab')(8)char(93)5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7](1) B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C(2)A(find(A>=50 & A<=100))二、实验题1.x=-74/180*pi;y=-27/180*pi;sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi2.a=-3.0:0.1:3.0;exp(-0.3*a).*sin(a+0.3)3.x=[2,4;-0.45,5];log(x+sqrt(1+x.*x))/24. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0]; (1)A*Bans =129 432 41977 -407 -1052402 591 12489A.*Bans =3 -108 13468 -360 518783 270 0(2) A^3ans =-28917 240246 -4368137883 -259101 27669171333 252504 38673A.^3ans =27 157464 839304 -91125 343658503 729000 3375(3)A/Bans =-5.8845 5.3549 -0.20286.3554 -5.6596 4.3293-6.6325 6.2078 9.0241B/Aans =30.2855 19.2643 -8.561433.4394 21.1547 -9.3974-0.7443 -0.3938 0.2830(4)[A,B]ans =3 54 2 1 -2 6734 -45 7 2 8 7487 90 15 9 3 0[A([1,3],:);B^2]ans =3 54 287 90 15600 183 -81684 282 72615 6 8255.a=1+2i;b=3+4i;c=exp(pi*i/6)c =0.8660 + 0.5000ic+a*b/(a+b)ans =1.6353 + 1.8462i第2章一、思考题3.s=0;for n=0:63s=s+2^n;enddisp(s)n=0:63;s=sum(2.^n)二、实验题1.x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)] z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)2.gh=input('输入工号');h=input('输入工时');dj=84;if h>120gz=dj*120+1.15*dj*(h-120);elseif h<60gz=dj*h-700;elsegz=dj*h;endformat bank;display([gh,gz])3.循环结构n=input('input n:');s=0;for k=1:ns=s+1/k^2;enddisplay(sqrt(s*6))向量运算n=input('input n:');k=1:n;display(sqrt(sum(1./k.^2)*6))4.y=0;k=0;while y<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])5.x0=0;x=1;k=0;a=input('a=');b=input('b=');while abs(x-x0)>=1e-5 && k<500x0=x;x=a/(b+x0);k=k+1;enddisplay([k,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);6.y=fun(40)/(fun(30)+fun(20))(1)函数文件fun.mfunction f=fun(n)f=n+log(n^2+5);(2)函数文件fun.mfunction f=fun(n)a=1:n;f=sum(a.*(a+1));第3章一、思考题4.t=0:0.01:1.5;y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);5.x=-10:0.01:10;y=linspace(-6,6,size(x,2))z=x.^3+3*x.*y.^2;plot3(x,y,z)6.x=100:100:400;y=100:100:400;z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334]; [X,Y]=meshgrid(x,y);mesh(X,Y,z)二、实验题1.(1)x=-10:0.01:10;plot(x,x-x.^3/3/2)(2)plot(x,exp(-x.*x/2)/2/pi)(3)x=-8:0.01:8;plot(x,sqrt((64-x.*x)/2))(4)t=0:pi/100:6*pi;plot(t.*sin(t),t.*cos(t))2. (1)x1=linspace(0,1,100);y1=2*x1-0.5;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);plot(x1,y1,'r-',x,y,'b:');text(0.4,1,'y=2x-0.5');text(-0.4,0.5,'x=sin(3t)cos(t)');text(-0.4,0.3,'y=sin(3t)sin(t)');(2)subplot(1,2,1);scatter(x1,y1,10)title('y=2x-0.5');subplot(1,2,2);scatter(x,y,10)3.subplot(1,21);x=1:1:100; y=sin(1./x);plot(x,y)subplot(1,2,2);fplot('sin(1/x)',[1,100])4.subplot(2,2,1);bar(t,y);subplot(2,2,2);stairs(t,y);subplot(2,2,3);stem(t,y)subplot(2,2,4);semilogy(t,y);5.theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);fi=linspace(0,2*pi,100);a=1r=a.*(1+cos(fi));polar(fi,r);6.t=0:pi/20:2*pi;x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t; plot3(x,y,z);t=0:0.01:1;x=t;y=t.^2;z=t.^3;plot3(x,y,z);7.x=-30:0.1:0;y=0:0.1:30;[x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); meshc(x,y,z);8.x=linspace(-3,3,100);y=linspace(-3,3,100);[x y]=meshgrid(x,y);fxy=-5./(1+x.^2+y.^2);i=find(abs(x)<=0.8 & abs(y)<=0.5);fxy(i)=NaN;surf(x,y,fxy)9.u=linspace(1,10,100);v=linspace(-pi,pi,100);[u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;surf(x,y,z);shading interp;light('position',[1,0,1]);10.t=0:pi/100:2*pi;y=sin(t);comet(t,y)第4章一、思考题5.(1)A=eye(3);(2)C=100+(200-100)*rand(5,6);(3)D=1+sqrt(0.2)*randn(1,500);(4)E=ones(size(A));(5)A=A+30*eye(size(A));(6)B=diag(diag(A))二、实验题1.P=pascal(5);H=hilb(5);Dp=det(P);Dh=det(H);Kp=cond(P);Kh=cond(H);P矩阵的性能更好,因为Kp较小2.A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp(2),0,97]A1=diag(A);B1=diag(B);A2=triu(A);B2=triu(B);A3=tril(A);B3=tril(B);rA=rank(A);rB=rank(B);nA=norm(A);nb=norm(B);cA=cond(A);cB=cond(B);3.A=[31,1,0;-4,-1,0;4,-8,-2];[V,D]=eig(A);4.A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2]) b=[1,0,0,0,0]';x1=inv(A)*b;x2=A\b;[L,U]=lu(A);x3=U\(L\b);[Q,R]=qr(a);[Q,R]=qr(A);x4=R\(Q\b)R=chol(A);x5=R\(R'\b)5.B=sparse(A);x1=inv(B)*b;x2=B\b;[L,U]=lu(B);x3=U\(L\b);第5章一、思考题3.A=randn(10,5);mean(A)std(A)max(max(A))min(min(A))sum(A,2)sum(sum(A))sort(A,1)sort(A,2,'descend')二、实验题1.A=rand(1,30000);mean(A)std(A)max(A)min(A)size(find(A>0.5))/size(A)2.h=[466,715,950,1422,1635];w=[7.04,4.28,3.40,2.52,2.13];hh=[500,900,1500];ww=interp1(h,w,hh,'spline')3.x=linspace(1,10,50);y=log(x);f=polyfit(x,y,5);yy=polyval(f,x);plot(x,y,'r-',x,yy,'g.')4.N=64; % 采样点数T=5; % 采样时间终点t=linspace(0,T,N); % 给出N个采样时间ti(I=1:N) x=3*exp(-t); % 求各采样点样本值xdt=t(2)-t(1); % 采样周期f=1/dt; % 采样频率(Hz)X=fft(x); % 计算x的快速傅立叶变换XF=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) f=f*(0:N/2)/N; % 使频率轴f从零开始plot(f,abs(F),'-*') % 绘制振幅-频率图xlabel('Frequency');ylabel('|F(k)|')5.(1)p1=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];p12=conv(p1,p2);p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3];roots(p)(2)A=[-1,4,3;2,1,5;0,5,6];Px=polyval(p,A)Pxm=polyvalm(p,A)6.(1)z=fzero('3*x-sin(x)+1',0)(2)建立函数文件myfun.mfunction F=myfun(X)x=X(1);y=X(2);F(1)=x*x+y*y-9;F(2)=x+y-1;在命令窗口中输入以下命令:x=fsolve(@myfun,[3,0]',optimset('Display','off')) 第6章一、思考题2.fx=inline('1./(1+x.^2)');[I,n]=quad(fx,-100000,100000,1e-3);[I,n]=quadl(fx,-100000,100000,1e-3);x=-100000:0.01:100000;y=1./(1+x.*x);trapz(x,y);3.(1)fx=inline('-2*y+2*x*x+2*x');[t,y]=ode23(fx,[0,0.5],1)(2)fx=inline('y-exp(x)*cos(x)');[t,y]=ode23(fx,[0,3],1)二、实验题1.for x=1:3fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];diff(fx)end2.(1)x=0:0.01:1;y=x.^10+10.^x+1./log10(x);dy=diff(y)/0.01;(2)x=0:0.01:1;y=log(1+x);dy=diff(y,2)/0.01;plot(x(1:99),dy)3.(1)fx=inline('x.^2.*sqrt(2*x.*x+3)');quad(fx,1,5)(2)fx=inline('x./sin(x).^2');quad(fx,pi/4,pi/3)(3)fx=inline('abs(cos(x+y))');dblquad(fx,0,pi,0,pi)(4)syms x y ;fx=x*y;int(int(fx,y^2,y+2),-1,2)x 的积分区间为【0,2】时fx=inline('x.*y');dblquad(fx,0,2,-1,2)4. x=0.3:0.2:1.5;y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325]; trapz(x,y)5.(1)yp=inline('-(1.2+sin(10*x))*y');[t,y]=ode23(yp,[0,5],1);(2)令''3,,21y x y x y x ='==,则可写出原方程的状态方程形式: 123233221sin 31)1(2cos 5cos x t x x t t t x x x x x +--++='='='⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+-+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'''t x x x t t tx x x cos 00)1(2cos 51sin 311000103212321 建立函数文件ztfun.m function y=ztfun(t,x)b=[0;0;cos(t)];y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b; 解微分方程组[t,y]=ode23(@ztfun,[0,5],[1;0;2]);6.建立函数文件ztfun.mfunction yy=ztfun(t,y) yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];解微分方程组 [t,y]=ode23(@ztfun,[0,5],[0;1;1])第7章一、思考题3.(1)数值积分fx=inline('exp(x).*(1+exp(x)).^2');quad(fx,0,log(2))符号积分f=sym('exp(x)*(1+exp(x))^2');v=int(f,0,log(2));eval(v)(2)略二、实验题1.A=sym('[1,2,3;x,y,z;3,2,1]')rank(A)inv(A)det(A)2.(1) y=sym('sqrt(x+sqrt(x+sqrt(x)))');y1=diff(y)y2=diff(y,'x',2)(2) syms x y;fxy=sin(x^2*y)*exp(-x^2-y);diff(diff(fxy,x),y)3.(1) syms xint(1/(1+x^4))(2) syms x tint((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t)) 4.syms n xsymsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)5.(1) syms xtaylor((exp(x)+exp(-x))/2,5,0)(2) syms a xtaylor(exp(-5*x)*sin(3*x+pi/3),5,a)6.(1)x=solve(sym('x^3+a*x+1=0'))(2)[x y]=solve('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0')7. 方程转化为: π21'11't y y y y -=+=⎩⎨⎧符号解[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t') 数值解编写函数文件ztfun.mfunction yy=ztfun(t,y)yy=[y(2);1-t^2/pi-y(1)];在命令窗口输入以下命令[t,y]=ode45(@ztfun,[-2,7],[-5;5]);t=linspace(-2,7,49)y2=y8.[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')。
MATLAB语言基础与应用(第二版)第1章 习题答案
第1章习题与答案1.1 MA TLAB桌面主要有哪些窗口构成?这些窗口主要功能是什么?请参考1.3节1.2计算下列表达式(1) 3+6 (2) sin(1+i)(3) (1+2i)×(2-i) (4) 2×4+3解答:(1) >> 3+6ans = 9(2) >> sin(1+i)ans = 1.2985 + 0.6350i(3) >> (1+2*i)*(2-i)ans = 4.0000 + 3.0000i(4) >> 2*4+3ans = 111.3借助“help”函数了解“meshgrid”函数的意义。
解答:>> help meshgridmeshgrid Cartesian grid in 2-D/3-D space[X,Y] = meshgrid(xgv,ygv) replicates the grid vectors xgv and ygv toproduce the coordinates of a rectangular grid (X, Y). The grid vectorxgv is replicated numel(ygv) times to form the columns of X. The gridvector ygv is replicated numel(xgv) times to form the rows of Y.[X,Y,Z] = meshgrid(xgv,ygv,zgv) replicates the grid vectors xgv, ygv, zgvto produce the coordinates of a 3D rectangular grid (X, Y, Z). The gridvectors xgv,ygv,zgv form the columns of X, rows of Y, and pages of Zrespectively. (X,Y,Z) are of size numel(ygv)-by-numel(xgv)-by(numel(zgv).[X,Y] = meshgrid(gv) is equivalent to [X,Y] = meshgrid(gv,gv).[X,Y,Z] = meshgrid(gv) is equivalent to [X,Y,Z] = meshgrid(gv,gv,gv).The coordinate arrays are typically used for the evaluation of functionsof two or three variables and for surface and volumetric plots.meshgrid and NDGRID are similar, though meshgrid is restricted to 2-Dand 3-D while NDGRID supports 1-D to N-D. In 2-D and 3-D the coordinates output by each function are the same, the difference is the shape of theoutput arrays. For grid vectors xgv, ygv and zgv of length M, N and Prespectively, NDGRID(xgv, ygv) will output arrays of size M-by-N whilemeshgrid(xgv, ygv) outputs arrays of size N-by-M. Similarly,NDGRID(xgv, ygv, zgv) will output arrays of size M-by-N-by-P whilemeshgrid(xgv, ygv, zgv) outputs arrays of size N-by-M-by-P.Example: Evaluate the function x*exp(-x^2-y^2)over the range -2 < x < 2, -4 < y < 4,[X,Y] = meshgrid(-2:.2:2, -4:.4:4);Z = X .* exp(-X.^2 - Y.^2);surf(X,Y,Z)Class support for inputs xgv,ygv,zgv:float: double, singleinteger: uint8, int8, uint16, int16, uint32, int32, uint64, int64 See also surf, slice, ndgrid.Overloaded methods:codistributed/meshgridgpuArray/meshgridReference page in Help browserdoc meshgrid1.4通过帮助浏览器窗口了解函数sin和cos。
matlab基础及其应用教程曾霞答案
MATLAB主窗口☐功能区☐快速访问工具栏☐当前文件夹工具栏命令行窗口命令行窗口用于输入命令并显示命令的执行结果。
命令行窗口续行符当前文件夹窗口工作区窗口>> A=[4,2;3,6]A =4 23 6>> B=exp(A)B =54.5982 7.389120.0855 403.4288 常用数学函数(1)函数的调用格式为:函数名(函数自变量的值)函数在运算时是将函数逐项作用于矩阵 的每个元素上,所以最后运算的结果就 是一个与自变量同型的矩阵。
(2)常用函数的应用①三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加“d”,以示区别。
>> sin(pi/2)ans =1>> sind(90)ans =1② abs函数可以求实数的绝对值、复数的模。
>> abs(-4)ans =4>> abs(3+4i)ans =5>> abs('a')ans =97赋值语句两种格式:☐变量=表达式☐表达式1+ x−y计算表达式5+cos 47°的值,并将结果赋给变量z,然后显示计算结果。
其中,x =π7 − 2i, y = e2 。
>> x=sqrt(7)-2i;>> y=exp(pi/2);>> z=(5+cosd(47))/(1+abs(x-y)) z =1.4395预定义变量预定义变量是在MATLAB工作空间中驻留,由系统本身定义的变量。
☐ans是默认赋值变量☐i和j代表虚数单位☐pi代表圆周率☐NaN代表非数内存变量文件用于保存MATLAB工作区变量的文件叫做内存变量文件,其扩展名为.mat ,也叫MAT文件。
矩阵的建立(1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。
matlab基础考试题及答案
matlab基础考试题及答案1. MATLAB中,如何创建一个名为"myMatrix"的3x3矩阵,其元素为1到9的连续整数?答案:可以使用以下命令创建矩阵:```matlabmyMatrix = [1 2 3; 4 5 6; 7 8 9];```或者使用`magic`函数:```matlabmyMatrix = magic(3);```2. 在MATLAB中,如何计算一个向量的元素平方?答案:可以使用`.^`运算符来计算向量元素的平方:```matlabv = [1 2 3 4];v_squared = v.^2;```3. MATLAB中,如何将一个向量逆序?答案:可以使用`flip`函数或者`end`索引来逆序一个向量:```matlabv = [1 2 3 4];v_reversed = flip(v);```或者```matlabv_reversed = v(end:-1:1);```4. 在MATLAB中,如何计算矩阵的行列式?答案:可以使用`det`函数来计算矩阵的行列式:```matlabA = [1 2; 3 4];detA = det(A);```5. MATLAB中,如何使用循环结构来计算1到100的自然数之和?答案:可以使用`for`循环来计算总和:```matlabsum = 0;for i = 1:100sum = sum + i;end```或者使用`sum`函数直接计算:```matlabsum = sum(1:100);```6. 在MATLAB中,如何创建一个复数?答案:可以通过指定实部和虚部来创建一个复数:```matlabcomplexNumber = 3 + 4i;```7. MATLAB中,如何绘制一个正弦波?答案:可以使用`plot`函数和`sin`函数来绘制正弦波:```matlabx = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);```8. 如何在MATLAB中计算两个矩阵的点积?答案:可以使用`dot`函数或`*`运算符来计算两个矩阵的点积:```matlabA = [1 2; 3 4];B = [5 6; 7 8];dotProduct = dot(A, B);```或者```matlabdotProduct = A * B;```9. MATLAB中,如何使用条件语句来检查一个数是否为偶数?答案:可以使用`if`语句和模运算符来检查一个数是否为偶数:```matlabnum = 10;if mod(num, 2) == 0disp('The number is even.');elsedisp('The number is odd.');end```10. 在MATLAB中,如何将一个字符串转换为小写?答案:可以使用`lower`函数来将字符串转换为小写:```matlabstr = 'Hello World';lowerStr = lower(str);```结束语:以上是MATLAB基础考试题及答案,希望这些题目能帮助你更好地理解和掌握MATLAB的基础知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业一4、写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。
>> M=[0:1:48];>> A=reshape(M,7,7)A =0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 476 13 20 27 34 41 48>> B=A(2:5,1:2:5)B =1 15 292 16 303 17 314 18 32(2)删除矩阵A的第七行元素。
>> A(7,:)=[]A =0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 47 (3)将矩阵A的每个元素值加30。
>> A=A+30A =30 37 44 51 58 65 7231 38 45 52 59 66 7332 39 46 53 60 67 7433 40 47 54 61 68 7534 41 48 55 62 69 7635 42 49 56 63 70 77(4求矩阵A的大小和维素。
sizeA = size(A)dA = ndims(A)sizeA =6 7dA =2(5)将向量t的0元素用机器零来代替。
>> t=[1 2 3 4 0 5];t =1 2 3 4 0 5>> find(t==0)ans =5>> t(5)=epst =1.00002.00003.00004.0000 0.00005.0000(6)将含有12个元素的向量x转换成3*4矩阵。
>> x=[0:11]x =0 1 2 3 4 5 6 7 8 9 10 11 >> y=reshape(x,3,4)0 3 6 91 4 7 102 5 8 11(7)求一个字符串的ASCII。
>> abs('a')ans =97(8)求一个ASCII所对应的字符。
>> char(99)ans =c5、已知A[97 67 34 10-78 75 65 532 5 -23 -590 = -12 54 7]写出完成下列操作的命令。
(1)取出A的前3列构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵D,B与C的乘积构成矩阵E。
>> B=A(1:3,:)B =97 67 34 10-78 75 65 532 5 -23 -59>> C=A(:,1:2)C =97 67-78 7532 50 -12>> D=A(2:4,3:4)D =65 5-23 -5954 7>> E=B*CE =5271 11574-11336 6641978 3112(2)输出【50,100】范围的全部元素。
>> find(A>=50 & A<=100)ans =1561012>> output = [A(1) A(5) A(6) A(10) A(12)]output =97 67 75 65 54二、实验题>> x = -74*pi/180;y=-27*pi/180;sin((x*x+y*y))/(sqrt(tan((abs(x+y))))+pi) ans =0.1987 - 0.1434i>> a = -3.0:0.1:3.0,exp(-0.3.*a).*sin(a+0.3)>> x=[2 4;-0.45 5];0.5*log(x+sqrt(1+x.*x))ans =0.7218 1.0474-0.2180 1.1562>> A = [3 54 2;34 -45 7;87 90 15],B = [1 -2 67;2 8 74;9 3 0]>> A*BA.*Bans =129 432 41977 -407 -1052402 591 12489ans =3 -108 13468 -360 518783 270 0>> A^3A.^3>> A/BB\A>> [A,B][A([1,3],:);B^2]>> a=1+2i,b=3+4i,c=exp(pi/6*i)c+a*b/(a+b)作业二1、从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第1位数和第3位数交换,第2位数和第4位数交换。
M 文件名为:Untitled1.m程序:x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)]z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)结果:输入一个四位整数:1234y =1 2 3 4z =8 9 0 1x =1892、硅谷公司员工的工资计算方法如下。
(1)工作时数超过120h者,超过部分加发15%。
(2)工作时数低于60h者,扣发700元。
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
程序:gonghao=input('输入工号');hour=input('输入工时');every=84;if hour>120gongzi=every*120+1.15* every *(hour-120);elseif hour<60gongzi=every*hour-700;elsegongzi=devery*hour;endformat bank;display([gonghao,gongzi])(1)结果:输入工号12输入工时130ans =12.00 11046.00(2)结果:输入工号12输入工时56ans =12.00 4004.00(3)结果:输入工号12输入工时80ans =12.00 6720.003、 根据n 2222211116321++++= π,求π的近似值。
当n 分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sun 函数)来实现。
(1)程序:(循环结构):n=input('input n:');s=0;for i=1:ns=s+1/i^2;pai= sqrt(s*6);enddisplay(pai)input n:100pai =3.1321(2)程序:(向量结构):n=input('input n:');i=1:n;pai= sqrt(sum(1./i.^2)*6);display(pai);结果:input n:100pai =3.13214、 根据12151311-++++=n y ,求: (1) y ﹤3时的最大n 值;(2) 与(1)的n 值对应的y 值。
y=0;k=0;while y<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])结果:ans =56.00 2.995、 考虑一下迭代公式:x x nn b a +=+1 其中,a 、b 为正的常数。
(1) 编写程序求迭代的结果,迭代的终止条件为|x x n n -+1|≤105-,迭代初值0.10=x ,迭代次数不超过500次。
程序:x0=1.0;a=input('a=');b=input('b=');x= a/(b+x0); m=1;while abs(x-x0)>1e-5 & m<500x0=x;x=a/(b+x0);m=m+1;enddisplay([m,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);结果:a=5b=5ans =7.0000 0.8541 ans =0.8541 -5.8541(2)如果迭代过程收敛于r,那么r的准确值是24 2ab b++-,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
a=1b=1ans =13.0000 0.6180ans =0.6180 -1.6180a=8b=3ans =13.0000 1.7016ans =1.7016 -4.7016a=10b=0.1ans =424.0000 3.1127 ans =3.1127 -3.21276、已知)20()30()40(f f f y +=(1) 当)5(10)(2++=n l n n f n 时,y 的值是多少? 程序:该题使用了function 的调用。
函数文件f.m function b=f(n); b=n+10*log(n^2+5); 结果:y=f(40)/(f(30)+f(20)) y = 0.6390(2) 当)1(433221)(+⨯++⨯+⨯+⨯=n n n f 时,y 的值是多少? 程序:函数文件fun.m function f=fun(n) f=sum([1:n].*([1:n]+1));结果:y=fun(40)/(fun(30)+fun(20)) y =1.7662作业三1、绘制下列曲线。
(1)!33x x y -= (2)exy 2221-=π(3)64222=+yx(4)⎩⎨⎧==tt y tt x cos sin解:(1)程序:x=-5:0.001:5;y=x-x.^3/(3*2*1);plot(x,y);(2)程序:x=-10:0.01:10;y= exp(-x.*x/2)/(2*pi); >> plot(x,y); (3) 程序:f='x.^2+2*y.^2-64';ezplot(f,[-10,10,-10,10]); ezplot('x.^2+2*y.^2-64',[-10,10,-10,10]); (4)程序:t=0:0.1:8*pi; >> x=t.*sin(t); >> y=t.*cos(t); >> plot(x,y);已知⎩⎨⎧==-=(t)sin(3t)sin y (3t)cos(t)sin 5.02x x y 和,π≤≤t 0,完成下列操作:(1) 在同一坐标系下用不同的颜色和线型绘制两条曲线,给曲线添加文字说明;解:程序:x1=linspace(0,1,100);>> y1=2*x1-0.5;>> t=linspace(0,pi,100);>> x=sin(3*t).*cos(t);>> y=sin(3*t).*sin(t);>> plot(x1,y1,'k:',x,y,'bp');>> text(0.5,1,'y=2x-0.5');>> text(-0.5,0.5,'x=sin(3t)cos(t)');>> text(-0.5,0.4,'x=sin(3t)sin(t)');(2)以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。