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。
- 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)以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。