matlab自制版答案
matlab习题二带答案
matlab习题二带答案Matlab习题二带答案Matlab是一种强大的数值计算和科学编程软件,广泛应用于各个领域的科学研究和工程实践中。
掌握Matlab的使用对于科学家和工程师来说至关重要。
为了帮助大家更好地掌握Matlab,下面将介绍一些常见的Matlab习题,并提供相应的答案。
1. 习题一:计算平均值编写一个Matlab函数,输入一个向量,输出该向量的平均值。
答案:```matlabfunction avg = computeAverage(vector)avg = sum(vector) / length(vector);end```2. 习题二:矩阵操作编写一个Matlab函数,输入两个矩阵A和B,输出它们的乘积C。
答案:```matlabfunction C = matrixMultiplication(A, B)[m, n] = size(A);[~, p] = size(B);C = zeros(m, p);for i = 1:mfor j = 1:pfor k = 1:nC(i, j) = C(i, j) + A(i, k) * B(k, j);endendendend```3. 习题三:图像处理编写一个Matlab函数,输入一张彩色图像,输出该图像的灰度图像。
答案:```matlabfunction grayImage = convertToGray(image)grayImage = rgb2gray(image);end```4. 习题四:数据拟合给定一组数据点(x, y),编写一个Matlab函数,拟合这些数据点为一条直线,并返回拟合直线的斜率和截距。
答案:```matlabfunction [slope, intercept] = fitLine(x, y)n = length(x);sx = sum(x);sy = sum(y);sxy = sum(x .* y);sxx = sum(x .* x);slope = (n * sxy - sx * sy) / (n * sxx - sx^2);intercept = (sy - slope * sx) / n;end```5. 习题五:数值积分编写一个Matlab函数,输入一个函数f(x)和积分区间[a, b],输出该函数在该区间上的数值积分结果。
(完整版)MATLAB)课后实验答案[1]
1 + e2 (2) z = 1 ln( x + 1 + x 2 ) ,其中 x = ⎡⎢ 2⎣-0.45 ⎦2 2 ⎪t 2 - 2t + 1 2 ≤ t <3 ⎨实验一MATLAB 运算基础1. 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情况并保存全部变量。
(1) z = 2sin 8501221 + 2i ⎤5 ⎥(3) z = e 0.3a - e -0.3asin(a + 0.3) + ln 0.3 + a ,a = -3.0, - 2.9, L , 2.9, 3.03⎧t 2 0 ≤ t < 1 (4) z = ⎪t 2 - 11 ≤ t <2 ,其中 t=0:0.5:2.5 4⎩解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
解:(1)结果:m=100:999;n=find(mod(m,21)==0);length(n)ans=43(2).建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch=⎣O2⨯3⎥,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩S⎦阵和对角阵,试通过数值计算验证A=⎢⎥。
MATLAB课后习题集附标准答案
第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.9、在MA TLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息.(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数.注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。
MATLAB习题及参考答案经典.doc
习题:1, 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2, 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
3, 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
(应用sin,cos,tan.cot)5, 将矩阵⎥⎦⎤⎢⎣⎡=7524a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574(2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []2965318772546, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。
(应用poly,polyvalm)7, 求解多项式x 3-7x 2+2x +40的根。
(应用roots)8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
(应用poly,polyvalm)9, 计算多项式9514124234++--x x x x 的微分和积分。
(应用polyder,polyint ,poly2sym)10, 解方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66136221143092x 。
(应用x=a\b)11, 求欠定方程组⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡5865394742x 的最小范数解。
(应用pinv) 12, 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=943457624a ,计算a 的行列式和逆矩阵。
(应用det,inv)13, y =sin(x ),x 从0到2π,∆x =0.02π,求y 的最大值、最小值、均值和标准差。
matlab习题答案
matlab习题答案
MATLAB习题答案
MATLAB是一种强大的数学软件,广泛应用于工程、科学和技术领域。
它具有丰富的函数库和强大的数据可视化功能,使得用户可以轻松地进行数据分析、算法开发和模拟实验。
在学习MATLAB的过程中,习题是检验自己掌握程度的重要方式。
下面我们就来看一些常见的MATLAB习题,以及它们的答案。
1. 编写一个MATLAB程序,计算并输出1到100之间所有偶数的和。
答案:
```matlab
sum = 0;
for i = 2:2:100
sum = sum + i;
end
disp(sum);
```
2. 编写一个MATLAB程序,生成一个5x5的单位矩阵。
答案:
```matlab
A = eye(5);
disp(A);
```
3. 编写一个MATLAB程序,计算并输出给定矩阵的转置矩阵。
答案:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
B = A';
disp(B);
```
通过以上习题的答案,我们可以看到MATLAB的基本语法和常用函数的使用方法。
掌握这些知识后,我们就可以更好地利用MATLAB进行数据处理、算法设计和模拟实验。
希望大家在学习MATLAB的过程中能够多多练习,不断提升自己的编程能力。
祝大家学习进步!。
matlab课后习题答案(附图)
matlab课后习题答案(附图)习题2.1画出下列常见曲线的图形y (1)⽴⽅抛物线3x命令:syms x y;ezplot('x.^(1/3)')(2)⾼斯曲线y=e^(-X^2);命令:clearsyms x y;ezplot('exp(-x*x)')(3)笛卡尔曲线命令:>> clear>> syms x y;>> a=1;>> ezplot(x^3+y^3-3*a*x*y)(4)蔓叶线命令:>> clear>> syms x y;>> a=1ezplot(y^2-(x^3)/(a-x))(5)摆线:()()tsin-=,=-by1命令:>> clear>> t=0:0.1:2*pi;>> x=t-sin(t);>>y=2*(1-cos(t)); >> plot(x,y)7螺旋线命令:>> clear >> t=0:0.1:2*pi; >> x=cos(t); >> y=sin(t); >> z=t;>>plot3(x,y,z)(8)阿基⽶德螺线命令:clear>> theta=0:0.1:2*pi;>> rho1=(theta);>> subplot(1,2,1),polar(theta,rho1)(9) 对数螺线命令:cleartheta=0:0.1:2*pi;rho1=exp(theta);subplot(1,2,1),polar(theta,rho1)(12)⼼形线命令:>> clear >> theta=0:0.1:2*pi; >> rho1=1+cos(theta); >> subplot(1,2,1),polar(theta,rho1)练习2.21. 求出下列极限值(1)nnn n3→命令:>>syms n>>limit((n^3+3^n)^(1/n)) ans = 3(2))121(lim n n n n ++-+∞→命令:>>syms n>>limit((n+2)^(1/2)-2*(n+1)^(1/2)+n^(1/2),n,inf) ans = 0(3)x x x 2cot lim 0→命令:syms x ;>> limit(x*cot(2*x),x,0) ans = 1/2 (4))(coslimcm xx ∞→命令:syms x m ; limit((cos(m/x))^x,x,inf) ans = 1(5))111(lim 1--→exx x命令:syms x>> limit(1/x-1/(exp(x)-1),x,1) ans =(exp(1)-2)/(exp(1)-1) (6))(2lim x x xx -+∞>> limit((x^2+x)^(1/2)-x,x,inf)ans = 1/2练习2.41. 求下列不定积分,并⽤diff 验证:(1)+x dxcos 1>>Clear >> syms x y >> y=1/(1+cos(x)); >> f=int(y,x) f =tan(1/2*x) >> y=tan(1/2*x); >> yx=diff(y ,x); >> y1=simple(yx) y1 =1/2+1/2*tan(1/2*x)^2 (2)+exdx1clear syms x yy=1/(1+exp(x));f=int(y,x) f =-log(1+exp(x))+log(exp(x)) syms x yy=-log(1+exp(x))+log(exp(x)); yx=diff(y,x); y1=simple(yx) y1 = 1/(1+exp(x)) (3)dx x x ?sin 2syms x yy=x*sin(x)^2; >> f=int(y,x) f =x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2 clearsyms x y y=x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2; yx=diff(y,x); >> y1=simple(yx) y1 = x*sin(x)^2 (4)xdx ?sec3syms x y y=sec(x)^3;f=int(y,x) f =1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)) clear syms x yy=1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)); yx=diff(y,x); y1=simple(yx) y1 =1/cos(x)^32. 求下列积分的数值解 1)dx x-10clearsyms xy=int(x^(-x),x,0,1) y =int(x^(-x),x = 0 .. 1) vpa(y,10) ans =1.291285997 2)xdx e x cos3202?πclearsyms xy=int(exp(2*x)*cos(x)^3,x, clear syms xy=int((1/(2*pi)^(1/2))*exp(-x^2/2),x,0,1) y =7186705221432913/36028797018963968*erf(1/2*2^(1/2))*2^(1/2)*pi^(1/0,2*pi) y =22/65*exp(pi)^4-22/65vpa(ans,10)(3)dx xe21221-π>> clear >> syms x>> y=int(1/(2*pi)^(1/2)*exp(-x^2/2),0,1); >> vpa(y,14) ans =.341344746068552(4)>> clear >> syms x>> y=int(x*log(x^4)*asin(1/x^2),1,3); Warning: Explicit integral could not be found. > In sym.int at 58 >> vpa(y,14) ans = 2.45977212823752(5) >> clear >> syms x1判断下列级数的收敛性,若收敛,求出其收敛值。
MATLAB-实用教程-课后习题标准答案
MATLAB-实用教程-课后习题标准答案第二章1.计算复数3+4i与5-6i的乘积。
a=3+4ib=5-6ic=a*b2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,[‘’,’’]}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age 属性值为19。
Students(1).Age=18Students(1).Email='',''Students(2).Name='Wang'Students(2).Age=21Students(2).Email=[]Students(3).Name='Li'Students(3).Age=[]Students(3).Email=[]/doc/805835364.html,Student(1).Age(1)=19Student.Age3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵:A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]S=sparse(A)S=sparse([2,1,4],[1,2,4],[1,1,1],4,5)4.采用向量构造符得到向量[1,5,9....,41].A=1:4:415.按水平和竖直方向分别合并下述两个矩阵:A=[1 0 0;1 1 0;0 01],B=[2 3 4;5 6 7;8 9 10]A=[1 0 0;1 1 0;0 0 1]B=[2 3 4;5 6 7;8 9 10]C=[A B]D=[A;B]6.分别删除第五题两个结果的第2行。
A=[1 0 0;1 1 0;0 0 1]B=[2 3 4;5 6 7;8 9 10]C=[A B]D=[A;B]C(2,:)=[]D(2,:)=[]7.分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。
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教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
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 tx x t t t x x x x x +--++='='='⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+-+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'''t x x x t t t x x x cos 00)1(2cos 51sin 311000103212321 建立函数文件ztfun.mfunction 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(sym('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习题二答案
matlab习题二答案Matlab习题二答案Matlab是一种强大的数值计算和科学计算软件,广泛应用于工程、科学、金融等领域。
在学习和使用Matlab的过程中,习题是一种很好的练习和巩固知识的方式。
本文将为大家提供一些Matlab习题二的答案,希望能对大家的学习有所帮助。
1. 编写一个函数,输入一个矩阵A,输出矩阵A的转置矩阵。
```matlabfunction B = transposeMatrix(A)B = A';end```2. 编写一个函数,输入一个矩阵A,输出矩阵A的每一行的平均值。
```matlabfunction avg = rowAverage(A)avg = mean(A, 2);end```3. 编写一个函数,输入一个矩阵A和一个标量k,输出矩阵A中大于k的元素个数。
```matlabfunction count = countGreaterThanK(A, k)count = sum(A(:) > k);end```4. 编写一个函数,输入一个矩阵A和一个标量k,输出矩阵A中大于k的元素的索引。
```matlabfunction indices = findGreaterThanK(A, k)indices = find(A > k);end```5. 编写一个函数,输入一个矩阵A,输出矩阵A的每一列的方差。
```matlabfunction variances = columnVariance(A)variances = var(A);end```6. 编写一个函数,输入一个矩阵A和一个标量k,将矩阵A中小于k的元素替换为0。
```matlabfunction B = replaceLessThanK(A, k)B = A;B(A < k) = 0;end```7. 编写一个函数,输入一个矩阵A和一个标量k,将矩阵A中小于k的元素替换为k。
```matlabfunction B = replaceLessThanK(A, k)B = A;B(A < k) = k;end```8. 编写一个函数,输入一个矩阵A和一个标量k,将矩阵A中大于k的元素替换为k。
MATLAB题目和答案
MATLAB题目和答案题目1编写一个MATLAB函数,该函数可以计算一个矩阵的逆矩阵。
解答1function invMatrix = calculateInverse(matrix)invMatrix = inv(matrix);end题目2编写一个MATLAB函数,该函数可以计算两个矩阵的乘积。
解答2function productMatrix = calculateProduct(matrix1, matrix2)productMatrix = matrix1 * matrix2;end编写一个MATLAB函数,该函数可以计算一个向量中的最大值和最小值。
解答3function [maxValue, minValue] = calculateMinMa x(vector)maxValue = max(vector);minValue = min(vector);end题目4编写一个MATLAB函数,该函数可以计算一个向量的平均值和标准差。
解答4function [average, stdDev] = calculateAverageA ndStdDev(vector)average = mean(vector);stdDev = std(vector);end编写一个MATLAB函数,该函数可以生成一个指定长度的斐波那契数列。
解答5function fibonacciSequence = generateFibonacci Sequence(length)fibonacciSequence = zeros(1, length);fibonacciSequence(1) = 0;fibonacciSequence(2) = 1;for i = 3:lengthfibonacciSequence(i) = fibonacciSequence (i-1) + fibonacciSequence(i-2);endend题目6编写一个MATLAB函数,该函数可以计算一个向量的累积和。
MATLAB 课后部分答案
P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> 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]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。
matlab练习题答案
matlab练习题答案一、求解线性方程组题目描述:解以下线性方程组2x + 3y - z = 7x - y + 2z = 33x + 2y + 4z = 12解答:使用MATLAB的线性方程组求解函数linsolve,可以得到该线性方程组的解。
代码如下:A = [2, 3, -1; 1, -1, 2; 3, 2, 4];B = [7; 3; 12];X = linsolve(A, B);其中,A为系数矩阵,B为常数矩阵,X为方程组的解矩阵。
运行以上代码,即可得到方程组的解为:X =2.0000-1.00003.0000所以,该线性方程组的解为x=2,y=-1,z=3。
二、矩阵运算题目描述:计算矩阵A和矩阵B的乘积,其中A为3×2矩阵,B为2×4矩阵。
A = [1, 2; 3, 4; 5, 6];B = [7, 8, 9, 10; 11, 12, 13, 14];解答:使用MATLAB的矩阵乘法运算符*,可以计算矩阵A和矩阵B的乘积。
代码如下:A = [1, 2; 3, 4; 5, 6];B = [7, 8, 9, 10; 11, 12, 13, 14];C = A * B;运行以上代码,即可得到矩阵A和矩阵B的乘积矩阵C。
C =29 32 35 3865 72 79 86101 112 123 134所以,矩阵A和矩阵B的乘积为一个3×4矩阵C,其中C的元素为上述结果。
三、绘制函数图像题目描述:绘制函数y = sin(x)在区间[0, 2π]上的图像。
解答:使用MATLAB的绘图函数plot,可以绘制函数的图像。
代码如下:x = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);其中,linspace函数用于生成0到2π之间的线性间隔向量,共100个点。
sin函数用于计算每个点的函数值。
plot函数用于绘制图像。
运行以上代码,即可得到函数y = sin(x)在区间[0, 2π]上的图像。
matlab课后习题答案(1-9章)要点
1 数字1.5e2,1.5e3 中的哪个与1500相同吗?1.5e32 请指出如下5个变量名中,哪些是合法的?abcd-2xyz_3 3chan a 变量ABCDefgh 2、5是合法的。
3 在MATLAB 环境中,比1大的最小数是多少? 1+eps4 设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2w1 = -2.0000 + 3.4641i ;w2 = 4.0000 ;w3 =-2.0000 + 3.4641i 5 指令clear, clf, clc 各有什么用处?clear 清除工作空间中所有的变量。
clf 清除当前图形。
clc 清除命令窗口中所有显示。
第二章1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?3/7+0.1双; sym(3/7+0.1)符; sym('3/7+0.1') 符;; vpa(sym(3/7+0.1)) 符;2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') symvar(sym('sin(w*t)'),1) w a z3 (1)试写出求三阶方程05.443=-x 正实根的程序。
注意:只要正实根,不要出现其他根。
(2)试求二阶方程022=+-a ax x 在0>a 时的根。
(1)reset(symengine)syms x positive solve(x^3-44.5) ans =(2^(2/3)*89^(1/3))/2(2)求五阶方程022=+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2)Warning: Explicit solution could not be found. > In solve at 83 ans =[ empty sym ]syms x clear syms a positivesolve(x^2-a*x+a^2) ans =a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/24 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。
matlab课后习题参考答案
Matlab课后习题部分参考答案习题二2.student=struct('name',{'zhang','wang','li'},'age',{18,21,[] },'email',{['zh ang@','zhang@'],'',''})5、a=[1 0 0;1 1 0;0 0 1];b=[2 3 4;5 6 7;8 9 10];c=[a b]d=[a;b]c =1 0 023 41 1 0 5 6 70 0 1 8 9 10d =1 0 01 1 00 0 12 3 45 6 78 9 1010、reshape(c,2,9)1 0 1 0 1 5 3 9 71 0 0 02 8 6 4 10 reshape(d,2,9)ans =1 0 5 0 0 6 0 1 71 2 8 1 3 9 0 4 10 (注意:重新排列矩阵,是将原来的矩阵按列排序)11、a.’12、a+b a.*ba\b (即inv(a)*b,考试时,要求能自己手算出a的逆)ans =2 3 43 3 38 9 1013、c=4*ones(3);a>=cb>=c14.strcat('The picture is ','very good')a=['The picture is ','very good']18.double('very good')1.norm(A),det(A),rank(A)2.b=[1 1 1 1 1];c=b';a=[17,24,1,8,50;23,5,7,14,49;4,6,13,20,43;10,12,19,21,62;11,18,25,2,56]; x=a\c习题四1、a=14*rand(1,10)-5;for i=1:9max=i;for j=i+1:10if a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;enda将上述脚本保存为script41.m2、function y=function42(n)3*randn(1,n)+3;for i=1:n-1max=i;for j=i+1:nif a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;endy=a;将上述函数保存为function42.m 3、r=input(‘please input 1/2: ’);if r= =1script41;elsen=input(‘please input the length: ’);y=funtion42(n);end4.function f=function1(x,y)if y==1f=sin(x);elseif y==2f=cos(x);elsef=sin(x).*cos(x);end在命令窗口调用函数f=function1(1,3) 5.function result=function3(x,n)result=0;for i=1:nresult=result+sin(x.*i)+(-1).^i.*cos(i.*x); endfunction result=function4(n,t)result=0;A=[1 2 3;0 1 2;0 0 1];for i=1:nresult=result+A*i.*exp(A*i.*t);end习题五3.x1=-2:0.01:2;x2=-2:0.01:2;y1=x1.*sin(x2);y2=x2.*cos(x1);plot3(x1,x2,y 1,'-d',x1,x2,y2,'-d')14、x=8*rand(1,100)-2;y=reshape(x,10,10);save mydata.mat yclearclcload mydatak=y>ones(10);totel=0;for i=1:100if k(i)==1totel=totel+1;endend15、x=rand(5); %生成5*5均匀分布的随机矩阵(该处只作举例,未按题目要求)fid=fopen(‘text.txt’,’w’);count=fwrite(fid,x,’int32’); closestatus=fclose(fid);清除内存,关闭所有窗口fid=fopen(‘text.txt’,’r’);x=fread(fid,[5,5],’int32’); closestatus=fclose(fid); inv(x)16.随便生成一个矩阵,x1=-1:0.2:0.8;x2=-1:0.2:0.8;y1=x1.*sin(x2);y2=x2.*cos(x1);a=reshape([y1;y2],10,10);fid=fopen('table.txt','w'); fprintf (fid,‘%f’,a); fclose(fid) ;清除内存,关闭所有窗口a=fscanf('table.txt','%f') ; exp(a) ;fclose(fid) ;习题六1.c=ploy2str(A);B=[2,0,0,1,3,5];2.x=1:10;B=ployval(A,x);。
matlab教程习题答案
matlab教程习题答案
MATLAB教程习题答案
MATLAB是一种用于数学计算、数据分析和可视化的强大工具。
它被广泛应用于工程、科学和金融领域,因此掌握它的使用对于提高工作效率和解决问题至关重要。
在学习MATLAB的过程中,许多人会遇到各种习题,下面我们将给出一些常见习题的答案,希望能帮助大家更好地理解和掌握MATLAB的使用。
1. 编写一个MATLAB程序,计算并输出1到100之间所有奇数的和。
答案:
```matlab
sum = 0;
for i = 1:100
if mod(i, 2) == 1
sum = sum + i;
end
end
disp(sum);
```
2. 编写一个MATLAB程序,生成一个5x5的随机矩阵,并计算矩阵每一行的平均值。
答案:
```matlab
A = rand(5, 5);
row_means = mean(A, 2);
disp(row_means);
```
3. 编写一个MATLAB程序,求解以下线性方程组的解:
```
2x + 3y = 8
4x - 2y = 2
```
答案:
```matlab
A = [2, 3; 4, -2];
B = [8; 2];
X = A \ B;
disp(X);
```
通过以上习题的答案,我们可以看到MATLAB的强大功能和灵活性。
掌握这些基本的使用技巧,可以帮助我们更好地应用MATLAB解决实际问题,提高工作效率。
希望大家在学习和使用MATLAB的过程中能够不断积累经验,不断提升自己的技能水平。
matlab课后习题答案刘
matlab课后习题答案刘MATLAB课后习题答案刘在本学期的MATLAB课程中,我们学习了MATLAB的基础知识和一些高级功能。
为了帮助同学们更好地复习和巩固所学知识,以下是针对课后习题的一些参考答案。
1. 向量和矩阵的基本操作- 创建一个3x3的单位矩阵。
```matlabA = eye(3);```- 计算矩阵A和B的乘积,其中B是A的转置。
```matlabB = A';C = A * B;```2. 条件语句和循环- 编写一个循环,打印出1到10的所有奇数。
```matlabfor i = 1:2:10disp(i);end```- 编写一个条件语句,检查一个数是否为素数。
```matlabfunction isPrime(n)if n <= 1isPrime = false;elsefor i = 2:sqrt(n)if mod(n, i) == 0isPrime = false;return;endendisPrime = true;endend```3. 函数和脚本- 编写一个函数,计算给定半径的圆的面积。
```matlabfunction area = circleArea(radius)area = pi * radius^2;end```- 编写一个脚本来调用上述函数,并打印出半径为5的圆的面积。
```matlabradius = 5;disp(['Area of circle with radius ', num2str(radius), ' is ', num2str(circleArea(radius))]);```4. 数据结构和文件I/O- 读取一个文本文件中的数据到一个cell数组。
```matlabfilename = 'data.txt';fileID = fopen(filename, 'r');data = textscan(fileID, '%s');fclose(fileID);```- 将一个矩阵写入到一个CSV文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.设矩阵A为A=[24 23 9 21 6;65 74 24 11 21;34 5 98 75 21;8 42 42 53 121;43 21 45 64 21];(1) B=A(2:5,1:2:5)B =65 24 2134 98 218 42 12143 45 21(2)A(7)=[]A =24 65 34 8 43 23 5 42 21 9 24 98 4264 6 21 21 121 21(3)A+30(4)size(A);ndims(A)(5)题目有误(6)reshape(x,3,4)(7)abs(x)(8)char(x)4. L1 =0 0 0 0 1 0 0 0L2 =1 1 1 1 1 0 0 00 0 0 1 1 1 0 0L4 =4 5 65.(1)B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*CB =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.0000C =23.0000 10.000041.0000 -45.000032.0000 5.00006.0000 -9.5400D =65.0000 5.0000 45 21 0 0 0 75 53 110 32.0000 54.0000 3.1400 E =1.0e+003 *0.9141 -0.22391.20802.71231.1330 -0.2103ans =0 10 00 1E&Dans =1 10 11 1E|Dans =1 11 11 1~D|~Eans =0 01 00 0find(A>=10&A<25) ans = 156.ans =any(A)ans =1isnan(A)ans =0 1 0 0isinf(A)ans = 0 0 00 0 1 1 0 0 0isfinite(A)ans =1 0 0 0 1 1 17.A(1).x1=’学号’;A(1).x2=’姓名’;A(1).x3=’专业’;A(1).x4.x41=’成绩1’;………. A(2).x1=’学号’;A(2).x2=’姓名’;A(2).x3=’专业’;A(2).x4.x41=’成绩1’;………. A(3).x1=’学号’;A(3).x2=’姓名’;A(3).x3=’专业’;A(3).x4.x41=’成绩1’;………. A(4).x1=’学号’;A(4).x2=’姓名’;A(4).x3=’专业’;A(4).x4.x41=’成绩1’;………. A(5).x1=’学号’;A(5).x2=’姓名’;A(5).x3=’专业’;A(5).x4.x41=’成绩1’;………. 8.(1)size(B)ans =2 2ans =2(2)B(2)ans =[3x3 doubleB(4)ans ={3x3 cell}(3)B(3)=[]B =[1] [3x3 double] {3x3 cell} B{3}=[]B =[1] [3x3 double] []第三章1.(1)A=eye(3)(2) A=100+100*rand(5,6)(3)A=1+sqrt(0.2)*randn(10,50)(4)B=ones(size(A))(5)A+30*eye(size(A))(6)B=diag(diag(A))2.B=rot90(A)C=rot90(A,-1)3.B=inv(A) ;A的逆矩阵 C=det(A) ;A的行列式的值 D=A*BE=B*AD=E 因此A与A-1是互逆的。
4.A=[4 2 -1;3 -1 2;12 3 0]; b=[2;10;8];x=inv(A)*bx =-6.000026.666727.33335.(1)diag(A) ;主对角线元素 ans =1159triu(A) ;上三角阵 ans =1 -123 0 1 -4 2 0 05 2 0 0 0 9 tril(A) ;下三角阵 ans = 1 0 0 0 5 1 0 0 3 0 5 011 15 0 9 rank(A) ;秩ans =4norm(A) ;范数 ans =21.3005cond(A) ;条件数 ans =11.1739trace(A) ;迹ans =16(2)略6.A=[1 1 0.5;1 1 0.25;0.5 0.25 2]A =1.0000 1.0000 0.50001.0000 1.0000 0.25000.5000 0.2500 2.0000[V,D]=eig(A)V =0.7212 0.4443 0.5315-0.6863 0.5621 0.4615-0.0937 -0.6976 0.7103D =-0.0166 0 00 1.4801 00 0 2.5365第四章1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); end b=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(c,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*d+100*e+10*b+c;disp(['加密后:',num2str(a)])2.a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3;disp(y)3.x=fix(rand(1,20)*89)+10;x1=fix(sum(x)/20);disp(['平均数是:',num2str(x1)])m=(rem(x,2)==0&x<x1);n=find(m);disp(['小于平均数的数是:',num2str(x(n))]);4.A=input('请输入20个数:');n=A;a=n;b=n;for n=Aif a>=na=n;elseif b<=nb=n;endenddisp(['min:',num2str(a)])disp(['max:',num2str(b)])请输入20个数:[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] min:1max:205.s=0;x=0;for n=1:64c=2^x;x=x+1;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)])2的0次方到63次方的和是:184467440737095520006,(1)sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.68817sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)]) 当n取1000时: sum=0.69265 sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)]) 当n取10000时:sum=0.6931 (2)sum1=0;for n=1:2:100x=(-1)^(n+1)*(1/(n+1));sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=2.2496 sum1=0;for n=1:2:1000x=(-1)^(n+1)*(1/(n+1));sum1=sum1+x;enddisp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=3.3964sum1=0;for n=1:2:10000x=(-1)^(n+1)*(1/(n+1));sum1=sum1+x;enddisp(['当n取10000时: sum=',num2str(sum1)]) 当n取10000时: sum=4.5473 (3)sum1=0;for n=1:100x=(1/4)^n;sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.33333 sum1=0;for n=1:1000x=(1/4)^n;sum1=sum1+x;enddisp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 sum1=0;for n=1:10000x=(1/4)^n;sum1=sum1+x;enddisp(['当n取10000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 (4)sum1=0;for n=1:100x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)]; sum1=sum1+x;enddisp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=100.4975 sum1=0;for n=1:1000x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)]; sum1=sum1+x;enddisp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时:sum=1000.4998sum1=0;for n=1:10000x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)]; sum1=sum1+x;enddisp(['当n取10000时: sum=',num2str(sum1)]) 当n取10000时:sum=10000.57,function f=factor(n);f(1)=1;f(2)=1;for k=3:nf(k)=f(k-1)+f(k-2);end运行结果:f=factor(10)f=1 1 2 3 5 8 13 21 34 558. function [f1,f2]=factor(a,b);f1=a*b;f2=a.*b;运行结果:[f1,f2]=factor([1,2;1 2],[1 3;1 3]) f1 =3 93 9f2 =1 61 69function f=factor(n,m);y=0;for k=1:ny=y+k^m;end10.(1)S=108(2)x=4 12 20 y=2 4 6第五章1. (1) x=-10:0.1:10; y=100./(1+x.^2);plot(x,y)(2) x=-10:0.1:10;y=1/(2*pi)*exp(-x.^2/2);plot(x,y)(3) ezplot('x^2+y^2=1')(4)t=-10:0.1:10; x=t.^2; y=5*t.^3;plot(x,y)2.(1)theta=0:0.01:2*pi; rho=5*cos(theta)+4; polar(theta,rho)(2)theta=0.001:0.1:2*pi; rho=12./sqrt(theta);polar(theta,rho)(3) theta=0.001:0.1:2*pi; rho=5./cos(theta)-7; polar(theta,rho)(4)theta=0.001:0.1:2*pi; rho=pi/3.*theta.^2;polar(theta,rho)3.(1)t=0:pi/100:2*pi; x=cos(t);y=sin(t);z=t;plot3(x,y,z)(2)u=0:pi/100:2*pi; v=0:pi/100:2*pi;x=(1+cos(u)).*cos(v); y=(1+cos(u)).*sin(v); z=sin(u);plot3(x,y,z)(3)(4)5.plot函数:>> x=linspace(-10,10,200); >> y=[];>>for x0=xif x0>0y=[y,x0.^2+(1+x0).^(1/4)+5]; elseif x0==0y=[y,0];elseif x0<0y=[y,x0.^3+sqrt(1-x0)-5]; endend>>plot(x,y)fplot函数:fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+ 5)',[-10,10])第六章1.A=randn(10,5)(1)mean(A) ;均值 std(A) ;标准方差(2)max(max(A)) ;最大元素 min(min(A)) ;最小元素(3)B=sum(A,2) ;A每行元素的和 sum(B) ;A全部元素之和(4)sort(A) ;A的每列元素按升序排列sort(A,2,’descend’) ;A的每行元素按将序排列2.(1)(2)X=[1 4 9 16 25 36 49 64 81 100];Y=1:10;X1=1:100;Y1=interp1(X,Y,X1,'cubic')3.x=[165 123 150 123 141];y=[187 126 172 125 148];P=polyfit(x,y,3)P =1.0e+003 *-0.0000 0.0013 -0.1779 8.4330所以它的线性拟合曲线为:p(x)=1.3x2—177.9x+84334.(1)P1=[0 3 2];P2=[5 -1 2];P3=[1 0 -0.5];P=conv(conv(P1,P2),P3)P =0 15.0000 7.0000 -3.5000 0.5000 -2.0000 -2.0000 所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2(2)roots(P)ans =0.70710.1000 + 0.6245i0.1000 - 0.6245i-0.7071-0.6667(3)i=0:10;xi=0.2*i;polyval(P,xi)ans =-2.0000 -2.3920 -2.6112 -1.7024 2.7104 15.0000 94.1408 184.9056 332.5264 560.00005.(1)建立函数文件:function f=fxy(u)x=u(1);y=u(2);f=3.*x.^2+2*x.*y+y.^2在命令窗口中输入以下命令:[U,fmin]=fminsearch('fxy',[1,1])结果:U =1.0e-004 *-0.0675 0.1715fmin =1.9920e-010(2)f=inline('-sin(x)-cos(x.^2)');fmax=fminbnd(f,0,pi)fmax =0.73106.(1)x=[pi/6 pi/4 pi/3];f=inline('sin(x).^2+cos(x).^2');dx=diff(f([x,5*pi/12]))/(pi/12) 可参见第157页例题6.19 dx =0 0 0 42.1120x=pi/2时单独计算:x=pi/2;f=inline('sin(x).^2+cos(x).^2');diff(f([x,pi]))/(pi/2)ans =(2)x=1:3;f=inline('sqrt(x.^2+1)');dx=diff(f([x,4]))结果:dx =0.8219 0.9262 0.96087.(1)f=inline('sin(x).^5.*sin(5*x)'); quad(f,0,pi)ans =0.0982(2)f=inline('(1+x.^2)./(1+x.^4)');quad(f,-1,1)ans =2.2214(3)f=inline('x.*sin(x)./(1+cos(x).^2)'); quad(f,0,pi)ans =2.4674(4)f=inline('abs(cos(x+y))');dblquad(f,0,pi,0,pi)ans =6.28328.N=64; %采样点数T=5; %采样时间终点t=linspace(0,T,N); %给出N个采样时间ti(i=1:N) y=exp(-t); %求各采样点样本值ydt=t(2)-t(1); %采样周期f=1/dt; % 采样频率Y=fft(y); %计算y的快速傅里叶变换Y F=Y(1:N/2+1); %F(k)=Y(k)f=f*(0:N/2)/N; %使频率轴f从0开始plot(f,abs(F)) %绘制振幅-频率图9.(1)矩阵求逆法:A=[2 3 5;3 7 4;1 -7 1];b=[10;3;5];x=inv(A)*bx =-1.8060-0.53733.0448矩阵除法法:A=[2 3 5;3 7 4;1 -7 1];b=[10;3;5];x=A\bx =-1.8060-0.53733.0448矩阵分解法:A=[2 3 5;3 7 4;1 -7 1];b=[10;3;5];[L,U]=lu(A);x=U\(L\b)x =-1.8060-0.53733.0448(2)方法同(1)10.函数文件:line_solution(A,b) function [x,y]=line_solution(A,b) [m,n]=size(A);y=[];if norm(b)>0if rank(A)==rank([A,b])if rank(A)==ndisp('原方程组有唯一解x');x=A\b;elsedisp('原方程组有无穷个解,特解为x,齐次方程组的基础解系为y'); x=A\b; y=null(A,'r');enddisp('方程组无解');x=[];endelsedisp('原方程组有零解x');x=zeros(n,1);if rank(A)<ndisp('方程组有无穷个解,基础解系为y');y=null(A,'r');endend程序:A=[2 1 -1 1;4 2 -2 1;2 1 -1 -1];b=[1;2;1];[x,y]=line_solution(A,b)结果:原方程组有无穷个解,特解为x,齐次方程组的基础解系为yWarning: Rank deficient, rank = 2, tol = 4.3512e-015.> In line_solution at 11方程组无解x =[]y =-0.5000 0.50001.0000 00 1.00000 011.(1)f=inline('x-sin(x)./x');x=fzero(f,0.5)x =0.8767(2)f=inline('(sin(x).^2).*exp(-0.1.*x)-0.5.*abs(x)'); x=fzero(f,1.5)x =1.673812.函数文件:function f=fxy(u)x=u(1)y=u(2)f(1)=x-0.6*sin(x)-0.3*cos(y)f(2)=y-0.6*cos(x)+0.3*sin(y)在命令窗口输入以下命令:x=fsolve('fxy',[0.5,0.5],optimset('Display','off')) 结果:x =0.6354 0.373415.A=[-1 2 0;-1 2 -1;-1 2 -1;-1 2 -1;0 2 -1];d=[-1;0;1];B=spdiags(A,d,5,5);b=[1 0 0 0 0]';x=(inv(B)*b)'x =0.8333 0.6667 0.5000 0.3333 0.1667。