MATLAB作业2参考答案(2018)

合集下载

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习题二带答案

matlab习题二带答案

matlab习题二带答案Matlab习题二带答案Matlab是一种功能强大的数学软件,被广泛应用于科学计算、数据分析和工程设计等领域。

在学习Matlab的过程中,练习习题是提高技能的有效方法。

本文将介绍一些常见的Matlab习题,并提供相应的答案。

习题一:矩阵运算给定两个矩阵A和B,求它们的和、差、乘积和转置。

解答:```matlabA = [1 2; 3 4];B = [5 6; 7 8];sum = A + B; % 矩阵相加difference = A - B; % 矩阵相减product = A * B; % 矩阵相乘transposeA = A'; % A的转置transposeB = B'; % B的转置```习题二:函数绘图给定一个函数y = sin(x),在区间[0, 2π]上绘制它的图像,并给出坐标轴标签和标题。

解答:```matlabx = linspace(0, 2*pi, 100); % 在区间[0, 2π]上生成100个等间距的点y = sin(x); % 计算y值plot(x, y); % 绘制图像xlabel('x'); % x轴标签ylabel('y'); % y轴标签title('y = sin(x)'); % 图像标题```习题三:数据分析给定一个包含学生姓名和成绩的数据表,计算平均成绩、最高成绩和最低成绩,并输出成绩排名前三的学生姓名。

解答:```matlabdata = {'Alice', 85; 'Bob', 92; 'Cindy', 78; 'David', 96; 'Emily', 89}; % 学生姓名和成绩数据表grades = data(:, 2); % 提取成绩列average = mean(grades); % 计算平均成绩maximum = max(grades); % 计算最高成绩minimum = min(grades); % 计算最低成绩sorted_data = sortrows(data, -2); % 按成绩降序排序top3 = sorted_data(1:3, 1); % 提取前三名学生姓名disp(['平均成绩:', num2str(average)]);disp(['最高成绩:', num2str(maximum)]);disp(['最低成绩:', num2str(minimum)]);disp('成绩排名前三的学生:');disp(top3);```习题四:方程求解解方程组2x + y = 5和x - y = 1,求解x和y的值。

MATLAB课后习题集附标准答案

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程序设计(第二版)课后作业答案.

(整理)matlab程序设计(第二版)课后作业答案.

一、实验结果:1、利用函数eye,ones,zeros,rand,randn 函数分别产生首先编写脚本函数如下:a1=eye(3)a2=eye(15,8)b1=ones(3)b2=ones(15,8)c1=zeros(3)c2=zeros(15,8)d1=2*rand(3,3)-1d2=2*randn(3,3)+1r1=2*rand(15,8)-1r2=2*randn(15,8)+12、使用函数diag和reshape函数:编写脚本:a1=[8 -7 2];a2=diag(a1);a3=fliplr(a2);a4=[5 3];a5=diag(a4,-1);a6=fliplr(a5);a=a3+a6a1=reshape(a,1,9)b1=[4 5 7];b2=diag(b1);b3=fliplr(b2);b4=[2 0 8];b5=diag(b4);b=b3+b5b6=reshape(b,1,9)3、直接在工作空间里输入:a=5-round(100*rand(50,2))/104、脚本文件:a=[-pi:2*pi/360:pi];y1=sin(a)y2=cos(a)5.、编写脚本:A=rand(10)b=A>0.6[i,j,v]=find(b)c=sum(v)6、编写脚本:A=randn(10)b=-0.5<A<0.5[i,j,v]=find(b);c=sum(v)7、编写实现表中功能的语句:if and(a<1,b<=0.5)语句1elseif and(a<1,b>0.5)语句2elseif and(a>=1,b<=0.5)语句3elseif and(a>=1,b>0.5)语句4elsedisp('error')end8、编写脚本如下:A=2*rand(3)b=A>1c=A.*b;[i,j,v]=find(c);v9、编写脚本函数:A=101*rand(100,3)b=A>100;c=A.*b;[i,j,d]=find(c);d10、为节约空间,用5*5的矩阵来模拟100*100的矩阵:编写脚本函数如下:A=[0 2 0 3 0;0 0 0 0 0;0 8 0 5 0;0 4 0 5 0;0 4 0 2 0]b=any(A);[i,j,v]=find(1-b);A(:,j)=[];B=A';c=any(B);[i,j,v]=find(1-c);B(:,j)=[];A=B'一、实验结果:1、输入脚本函数:x=0:pi/50:2*pi;k=[1 26 51 76 101];x(k)=[];figure(1)subplot(2,2,1)plot(x,sin(x)),grid onsubplot(2,2,2)plot(x,cos(x)),grid onsubplot(2,2,3)plot(x,tan(x)),grid onsubplot(2,2,4)plot(x,cot(x)),grid on2、分别利用title函数给图形加上标题,用text函数给坐标系中的建立文本对象,可将字符串放在图形的指定位置,用xlabel、ylabel函数添加x、y轴的标记,用legend 函数给图形加上插图说明。

matlab课后习题解答第二章

matlab课后习题解答第二章

第2章符号运算习题 2 及解答1说出以下四条指令产生的结果各属于哪一种数据种类,是“双精度”对象,仍是“符号”符号对象3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+)〖目的〗不可以从显示形式判断数据种类,而一定依赖class 指令。

〖解答〗c1=3/7+c2=sym(3/7+c3=sym('3/7+')c4=vpa(sym(3/7+)Cs1=class(c1)Cs2=class(c2)Cs3=class(c3)Cs4=class(c4)c1 =c2 =37/70c3 =c4 =Cs1 =doubleCs2 =symCs3 =symCs4 =sym2在不加特意指定的状况下,以下符号表达式中的哪一个变量被以为是自由符号变量 .sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)')〖目的〗理解自由符号变量确实认规则。

〖解答〗symvar(sym('sin(w*t)'),1)ans =wsymvar(sym('a*exp(-X)'),1)ans = asymvar(sym('z*exp(j*th)'),1) ans = za11a12a 135 求符号矩阵 A a 21 a 22 a 23 的队列式值和逆, 所得结果应采纳 “子a31a32a33表达式置换”简短化。

〖目的〗理解 subexpr 指令。

〖解答〗A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A);[IAs,d]=subexpr(IA,d)A =[ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA =a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs =[ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d =1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31)8(1)经过符号计算求 y(t)sin t 的导数dy。

matelab作业2参考答案

matelab作业2参考答案

matelab作业2参考答案Matlab作业2参考答案Matlab作业2是一项综合性的任务,要求学生运用Matlab编程语言解决一系列数学问题。

本文将为大家提供一份参考答案,帮助学生更好地理解和完成这项作业。

首先,我们将讨论作业的第一个问题,即给定一个矩阵A,求解其特征值和特征向量。

在Matlab中,可以使用eig函数来实现这一功能。

例如,假设我们有一个3×3的矩阵A,可以按照以下方式计算其特征值和特征向量:```A = [1 2 3; 4 5 6; 7 8 9];[eigenvectors, eigenvalues] = eig(A);```在上述代码中,变量eigenvectors将存储A的特征向量,而变量eigenvalues 将存储A的特征值。

通过打印这两个变量的值,我们可以得到矩阵A的特征值和特征向量。

接下来,我们将探讨作业的第二个问题,即求解线性方程组。

假设我们有一个3×3的系数矩阵A和一个3×1的常数向量b,我们需要求解方程组Ax=b。

在Matlab中,可以使用backslash运算符来求解线性方程组。

例如,假设我们有以下方程组:```A = [1 2 3; 4 5 6; 7 8 9];b = [10; 20; 30];x = A \ b;```在上述代码中,变量x将存储方程组的解。

通过打印变量x的值,我们可以得到方程组的解。

此外,作业的第三个问题要求学生使用Matlab绘制函数图像。

在Matlab中,可以使用plot函数来实现这一功能。

例如,假设我们要绘制函数y=sin(x),其中x的取值范围为0到2π,可以按照以下方式绘制函数图像:```x = 0:0.1:2*pi;y = sin(x);plot(x, y);```在上述代码中,变量x将存储x的取值范围,变量y将存储对应的函数值。

通过调用plot函数,我们可以将函数y=sin(x)的图像绘制出来。

matlab习题2答案

matlab习题2答案

matlab习题2答案MATLAB习题2答案在MATLAB习题2中,我们学习了如何使用MATLAB编程语言解决各种数学问题和数据分析任务。

在本篇文章中,我们将探讨一些常见的习题,并给出相应的答案和解释。

第一道习题是关于矩阵运算的。

我们需要编写一个MATLAB程序,计算两个矩阵的乘积。

在MATLAB中,可以使用矩阵乘法运算符“*”来实现这个功能。

例如,如果我们有两个矩阵A和B,我们可以使用以下代码来计算它们的乘积:```matlabC = A * B;```接下来,我们需要解决一个关于插值的问题。

我们需要编写一个程序,使用插值方法来估算给定点的函数值。

在MATLAB中,可以使用interp1函数来实现这个功能。

例如,如果我们有一个已知的函数y和一组离散的点x,我们可以使用以下代码来进行插值计算:```matlabx_interp = 0:0.1:10;y_interp = interp1(x, y, x_interp, 'spline');```最后,我们需要解决一个关于数据可视化的问题。

我们需要编写一个程序,绘制给定数据的散点图和拟合曲线。

在MATLAB中,可以使用scatter和plot函数来实现这个功能。

例如,如果我们有一组数据点x和y,我们可以使用以下代码来进行数据可视化:```matlabscatter(x, y);hold on;p = polyfit(x, y, 1);y_fit = polyval(p, x);plot(x, y_fit, 'r');```通过以上习题的练习,我们可以更好地掌握MATLAB编程语言的基本语法和常用函数。

希望本篇文章对大家有所帮助,也希望大家能够在日常工作和学习中充分利用MATLAB的强大功能,提高工作效率和解决问题的能力。

(完整版)MATLAB作业2参考答案

(完整版)MATLAB作业2参考答案

(完整版)MATLAB作业2参考答案MATLAB 作业⼆参考答案1、试求出如下极限。

【求解】极限问题可以由下⾯语句直接求解。

>> syms x; f=(x+2)A(x+2)*(x+3)A(x+3)/(x+5F(2*x+5); limit(f,x,i nf) ans = exp(-5) >> syms x yfa=(x A 2*y+x*y A 3)/(x+y)A 3; limit(limit(fa,x,-1),y,2) ans = -6>> fc=(1-cos(xA2+yA2))*exp(xA2+yA2)/(xA2+yA2); limit(limit(fc,x,O),y,O) ans = 02、试求出下⾯函数的导数。

(1) y(x) . xsinx 、1e x , (2) atan yIn(x 2 y 2)x【求解】由求导函数diff() 可以直接得出如下结果,其中 (2)为隐函数,故需要⽤隐函数求导公式得出导数。

>> syms x;f=sqrt(x*si n( x)*sqrt(1-exp(x))); simple(diff(f)) ans =1/2/(x*s in (x)*(1-exp(x))A(1/2))A(1/2)*(si n(x)*(1-exp(x))A(1/2)+ x*cos(x)*(1-exp(x))A(1/2)-1/2*x*sin (x)/(1-exp(x))A(1/2)*exp(x)) >> syms x,y; f=ata n(y /x)_log(xA2+yA2); f1=simple(-diff(f,x)/diff(f,y)) f1 =(y+2*x)/(x-2*y)2 23、假设U cos 1 J *,试验证⼀———。

\y x y y x【求解】证明⼆者相等亦可以由⼆者之差为零来证明,故由下⾯的语句直接证明。

>> syms x y; u=acos(x/y); diff(diff(u,x),y)-diff(diff(u,y),x) ans =(1) limx (x 2)x 2(x 3)x3(x 5)2x 52..x y lim y 21(x xy 3y)3H xy2Xos2Xe2o o2xyt 2x2f2f2f4、假设 f (x, y) e dt ,试求 22 2y x x yy【求解】由下⾯的命令可以得出所需结果。

Matlab语言及应用大作业02答案

Matlab语言及应用大作业02答案

MATLAB语言及应用大作业姓名:学号:班级:1.利用plot函数在区间[0,2π]同时绘制x=sin(t)和y=cos(t),z=sin(t)+cos(t)的图形。

要求:1)对图像x轴和y轴分别标注“时间”和“函数值”2)对曲线加图例标注,图例位置自动定位(12分)。

>> t=[0:0.1*pi:2*pi];>> x=sin(t);>> y=cos(t);>> z=sin(t)+cos(t);>> plot(t,x,t,y,t,z)>> xlabel('时间')>> ylabel('函数值')>> legend('x=sin(t)','y=cos(t)','z=sin(t)+cos(t)')2. 求2!+4!+6!+8!+10! (12分)sum=0;for i=2:2:10pdr=1;for k=2:ipdr=pdr*k;endsum=sum+pdr;end在M文件编辑窗口编写上述程序,保存为exam02.m文件;在MATLAB命令窗口执行命令:>>exam02>>sumsum =36698663.编写m 函数,计算函数值(12分)221,10002,,0≥<≤<≤<⎪⎪⎩⎪⎪⎨⎧-=x x x x x x y 编写函数代码function f=exam03(t) if(t<0) f=0;elseif(t>=0)&(t<1) f=t;elseif(t>=1)&(t<=2) f=2-t; else f=0; end在M 文件编辑窗口编写上述程序,保存为exam03.m 文件在MATLAB 命令窗口输入: >> x=1;>> y=exam07(x) y = 14.计算下面矩阵的特征值、特征向量、迹和秩。

matlab习题二答案

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)课后实验答案

A = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0.5383 0.9961 0.0782 1.0000 0 0.4427 0.1067 0.9619 0 2.0000
a = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 1.0767 1.9923 0.1564 1.0000 0 1.3280 0.3200 2.8857 0 4.0000
P= 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 1 5 15 35
1
5
15
35Βιβλιοθήκη 70Hh = 3.7493e-012
Hp = 1
Th = 4.7661e+005
Tp = 8.5175e+003 因为它们的条件数 Th>>Tp,所以 pascal 矩阵性能更好。 3. 建立一个 5×5 矩阵,求它的行列式值、迹、秩和范数。 解: M 文件如下:
实验一
MATLAB 运算基础
1. 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情 况并保存全部变量。 (1) z1
2sin 850 1 e2
1 2
1 2i 2 5 0.45
(2) z2 ln( x 1 x 2 ) ,其中 x (3) z3
用 if 语句实现,分别输出 x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0 时的 y 值。 解:M 文件如下:
运算结果有: f(-5) y= 14 >> f(-3)
y= 11 >> f(1) y= 2 >> f(2) y= 1 >> f(2.5) y= -0.2500 >> f(3) y= 5 >> f(5) y= 19

matlab课后习题参考答案

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作业2参考答案(2018年)

MATLAB作业2参考答案(2018年)

MA TLAB 作业二参考答案1、试求下面线性代数方程的解析解与数值解,并检验解的正确性。

2932114010110503848246303356684953X -----⎡⎤⎡⎤⎢⎥⎢⎥----⎢⎥⎢⎥=⎢⎥⎢⎥---⎢⎥⎢⎥------⎣⎦⎣⎦【求解】求出A , [A;B ] 两个矩阵的秩,可见二者相同,所以方程不是矛盾方程,应该有无穷多解。

>> A=[2,-9,3,-2,-1; 10,-1,10,5,0; 8,-2,-4,-6,3; -5,-6,-6,-8,-4]; B=[-1,-4,0; -3,-8,-4; 0,3,3; 9,-5,3]; [rank(A), rank([A B])] ans =4 4用下面的语句可以求出方程的解析解,并可以验证该解没有误差。

>> x0=null(sym(A));x_analytical=sym(A)\B; syms a; x=a*[x0 x0 x0]+x_analyticalx =[ a+967/1535, a-943/1535, a-159/1535][ -1535/1524*a, -1535/1524*a, -1535/1524*a][ -3659/1524*a-1807/1535,-3659/1524*a-257/1535,-3659/1524*a-141/1535] [ 1321/508*a+759/1535, 1321/508*a-56/1535, 1321/508*a-628/1535] [ -170/127*a-694/307, -170/127*a+719/307, -170/127*a+103/307] >> A*x-B ans = [ 0, 0, 0][ 0, 0, 0] [ 0, 0, 0] [ 0, 0, 0]用数值解方法也可以求出方程的解,但会存在误差,且与任意常数a 的值有关。

>> x0=null(A); x_numerical=A\B; syms a; x=a*[x0 x0 x0]+x_numerical; vpa(x,10)ans =[ .2474402553*a+.1396556436, .2474402553*a-.6840666849, .2474402553*a-.1418420333][-.2492262414*a+.4938507789,-.2492262414*a+.7023776988e-1,-.2492262414*a+.3853511888e-1][ -.5940839201*a, -.5940839201*a, -.5940839201*a][ .6434420813*a-.7805411315, .6434420813*a-.2178190763,.6434420813*a-.5086089095][-.3312192394*a-1.604263460, -.3312192394*a+2.435364854, -.3312192394*a+.3867176824] >> A*x-B[ 1/18014398509481984*a, 1/18014398509481984*a, 1/18014398509481984*a] [ -5/4503599627370496*a, -5/4503599627370496*a, -5/4503599627370496*a][ -25/18014398509481984*a, -25/18014398509481984*a, -25/18014398509481984*a] [ 13/18014398509481984*a, 13/18014398509481984*a, 13/18014398509481984*a]2、求解下面的联立方程,并检验得出的高精度数值解(准解析解)的精度。

MATLAB实验二-绘图-参考答案-仅供参考

MATLAB实验二-绘图-参考答案-仅供参考
实验报告
实验二:MATLAB 的绘图
实验目的:
1、掌握 MATLAB 的各种二维绘图; 2、掌握 MABLAB 的三维绘图; 3、了解 MABLAB 的 MATLAB 的绘图修饰。
实验内容
1、 2、 3、 1. 基本二维绘图函数 2. 颜色,线条的设置,绘制多图 3. 三维绘图 4. 图形标注,坐标,修饰等处理
0.1 x
sin(0.5 x) 和 y 0.2e 0.1x cos(0.5 x) 在区间
[0,2] 上的曲线图,添上图例、题头、坐标轴。
x=0:pi/20:2*pi; plot(x,0.2*exp(0.1*x)+sin(0.5*x),x,0.2*exp(0.1*x)+cos(0.5*x)) legend('0.2*exp(0.1*x)+sin(0.5*x)','0.2*exp(0.1*x)+cos(0.5*x)') xlabel('x'); ylabel('y'); title('两曲线示意图') 6、1)数据如下表所示: 数学系毕业学生去向 国家单位 私营企业 出国 读研 待业 比例(%) 10 40 5 20 25
实验要求
1、学生在实验操作过程中自己动手独立完成,1 人为 1 组。 2、完成实验报告:按照试验的每个题目的具体要求完成
实验数据记录及分析(命令与结果)
1、 运行该端程序,注释程序。 v=[‘-1’;’+1’]; t=[0:0.05:2*pi]; % t 的取值范围是 0 到 2pi,其步长为 0.05 plot(t,sin(t)); xlabel(‘time(0—2\pi)’); % 在坐标轴 x 上标注 time(0-2\pi) ylabel(‘value’); % 在坐标轴 y 标注 value text(pi/2,0.9,[‘\uparrowsin(\pi/2)=’,v(2,:)]); % 在 (pi/2, 0.9) 处用向上的箭头标注 sin(pi/2)=+1 text(pi*3/2,-0.9,[‘\downarrowsin(\pi*3/2)=’,v(1,:)]); text(0,0.6,[‘Date:’,date]); % 在(0,0.6)处显示 Date 当前日期 gtext( [‘Date:’,date]); % 通过鼠标箭头标注 Date 日期 2、运行该端程序(掌握 subplot,pause) ,注释程序 t=0:0.1:4*pi; y=exp(-0.1*t).*sin(t); clf % 清空绘图窗口 figure(1) % 新建一个绘图窗口, 标号为 1 subplot(2,2,1) % 将一个绘图窗口划分成一个 2*2 的子区域, 并按行从左至右 依次排号,1 表示第一个绘图子区域 stem(t,y) % 绘制火柴杆图 title('stem(t,y)') % 加标题为 stem(t,y) pause % 在当前完成的图像上停留,按任意键显示后面的命令 subplot(2,2,2) stairs(t,y) % 绘制阶梯图 title('stairs (t,y)') pause subplot(2,2,3)

matlab课后练习习题及答案详解

matlab课后练习习题及答案详解

matlab课后习题及答案详解第1章MATLAB概论与其余计算机语言对比较,MATLAB语言突出的特色是什么?MATLAB拥有功能强盛、使用方便、输入简捷、库函数丰富、开放性强等特色。

MATLAB系统由那些部分构成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。

安装MATLAB时,在选择组件窗口中哪些部分一定勾选,没有勾选的部分此后怎样补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框能否被勾选来决定,能够依据自己的需要选择安装内容,但基本平台(即MATLAB选项)一定安装。

第一次安装没有选择的内容在补安装时只要依据安装的过程进行,不过在选择组件时只勾选要补装的组件或工具箱即可。

MATLAB操作桌面有几个窗口?怎样使某个窗口离开桌面成为独立窗口?又怎样将离开出去的窗口从头搁置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是封闭窗口的Close按钮,一个是能够使窗口成为独立窗口的Undock 按钮,点击Undock按钮就能够使该窗口离开桌面成为独立窗口,在独立窗口的view菜单中选择Dock,,菜单项就能够将独立的窗口从头防备的桌面上。

怎样启动M文件编写/调试器?在操作桌面上选择“成立新文件”或“翻开文件”操作时,M文件编写/调试器将被启动。

在命令窗口中键入edit命令时也能够启动M文件编写/调试器。

储存在工作空间中的数组能编写吗?怎样操作?储存在工作空间的数组能够经过数组编写器进行编写:在工作空间阅读器中双击要编写的数组名翻开数组编写器,再选中要改正的数据单元,输入改正内容即可。

命令历史窗口除了能够察看前方键入的命令外,还有什么用途?命令历史窗口除了用于查问从前键入的命令外,还能够直接履行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

怎样设置目前目录和搜寻路径,在目前目录上的文件和在搜寻路径上的文件有什么差别?目前目录能够在目前目录阅读器窗口左上方的输入栏中设置,搜寻路径能够经过选择操作桌面的file菜单中的SetPath菜单项来达成。

Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案第一章实验1.实验一第1题2.自己验证总结Matlab的主要优点3.实验一第2题4.实验一第3题5.网站思考练习1.启动见书P5 退出见书P62.Matlab主要功能见书P2 4种功能3.分行输入行末尾加续行符,即三个点“…”4.见书P115.直接在命令窗口输入fac第二章实验1.(1) w=sqrt(2)*(1+0.34245*10^(-6))w = 1.4142(2) a=3.5;b=5;c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a)x =0.9829(3) a=3.32;b=-7.9;y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)y = -128.4271(4) t=[2,1-3i;5,-0.65];z=0.5*exp(2*t)*log(t+sqrt(1+t.*t))z =1.0e+004 *0.0048 + 0.0002i 0.0048 - 0.0034i1.58992.0090 - 1.3580i2.实验二第1题3.实验二第2题4. H=hilb(5);P=pascal(5);Hh=det(H)Hh = 3.7493e-012Hp=det(P)Hp = 1Th=cond(H)Th = 4.7661e+005Tp=cond(P)Tp = 8.5175e+003条件数越趋近于1,矩阵的性能越好,所以帕斯卡矩阵性能更好。

5. A=[-29,6,18;20,5,12;-8,8,5]A =-29 6 1820 5 12-8 8 5[V,D]=eig(A)V =0.7130 0.2803 0.2733-0.6084 -0.7867 0.87250.3487 0.5501 0.4050D =-25.3169 0 00 -10.5182 00 0 16.8351V为A的特征向量,D为A的特征值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 作业二参考答案1、试求下面线性代数方程的解析解与数值解,并检验解的正确性。

2932114010110503848246303356684953X -----⎡⎤⎡⎤⎢⎥⎢⎥----⎢⎥⎢⎥=⎢⎥⎢⎥---⎢⎥⎢⎥------⎣⎦⎣⎦【求解】求出A , [A;B ] 两个矩阵的秩,可见二者相同,所以方程不是矛盾方程,应该有无穷多解。

>> A=[2,-9,3,-2,-1; 10,-1,10,5,0; 8,-2,-4,-6,3; -5,-6,-6,-8,-4]; B=[-1,-4,0; -3,-8,-4; 0,3,3; 9,-5,3]; [rank(A), rank([A B])] ans =4 4用下面的语句可以求出方程的解析解,并可以验证该解没有误差。

>> x0=null(sym(A));x_analytical=sym(A)\B; syms a; x=a*[x0 x0 x0]+x_analytical x =[ a+967/1535, a-943/1535, a-159/1535] [ -1535/1524*a, -1535/1524*a, -1535/1524*a][ -3659/1524*a-1807/1535,-3659/1524*a-257/1535,-3659/1524*a-141/1535] [ 1321/508*a+759/1535, 1321/508*a-56/1535, 1321/508*a-628/1535] [ -170/127*a-694/307, -170/127*a+719/307, -170/127*a+103/307] >> A*x-B ans =[ 0, 0, 0][ 0, 0, 0][ 0, 0, 0][ 0, 0, 0]用数值解方法也可以求出方程的解,但会存在误差,且与任意常数a 的值有关。

>> x0=null(A); x_numerical=A\B; syms a;x=a*[x0 x0 x0]+x_numerical; vpa(x,10)ans =[ .2474402553*a+.1396556436, .2474402553*a-.6840666849, .2474402553*a-.1418 420333][-.2492262414*a+.4938507789,-.2492262414*a+.7023776988e-1,-.2492262414*a+ .3853511888e-1][ -.5940839201*a, -.5940839201*a, -.5940839201*a][ .6434420813*a-.7805411315, .6434420813*a-.2178190763,.6434420813*a-.50860 89095][-.3312192394*a-1.604263460, -.3312192394*a+2.435364854,-.3312192394*a+.3867176824]>> A*x-Bans =[ 1/18014398509481984*a, 1/18014398509481984*a, 1/18014398509481984*a] [ -5/4503599627370496*a, -5/4503599627370496*a, -5/4503599627370496*a] [ -25/18014398509481984*a, -25/18014398509481984*a,-25/18014398509481984*a][ 13/18014398509481984*a, 13/18014398509481984*a, 13/18014398509481984*a]2、求解下面的联立方程,并检验得出的高精度数值解(准解析解)的精度。

212221210(2)(0.5)10x x x x ⎧--=⎨-+--=⎩【求解】给出的方程可以由下面的语句直接求解,经检验可见,精度是相当高的。

>> [x1,x2]=solve('x1^2-x2-1=0','(x1-2)^2+(x2-0.5)^2-1=0','x1,x2') x1 =-1.3068444845633173592407431426632-1.2136904451605911320167045558746*sqrt(-1)-1.3068444845633173592407431426632+1.2136904451605911320167045558746*sqrt(-1)1.0673460858066897134085973128070 1.5463428833199450050728889725194 x2 =-.76520198984055124633885565606586+3.1722093284506318231178646481143*sqrt(-1)-.76520198984055124633885565606586-3.1722093284506318231178646481143*sqrt(-1).13922766688686144048362498805141 1.3911763127942410521940863240803>> norm(double([x1.^2-x2-1 (x1-2).^2+(x2-0.5).^2-1])) ans =6.058152713871457e-0313、用Jacobi、Gauss-Seidel迭代法求解方程组1231231231027210283542x x xx x xx x x--=⎧⎪-+-=⎨⎪--+=⎩,给定初值为(0)(0,0,0)Tx=。

【求解】:编写Jacobi、Gauss-Seidel函数计算,function y=jacobi(a,b,x0)D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1);B=D\(L+U); f=D\b;y=B*x0+f;n=1;while norm(y-x0)>=1.0e-6x0=y;y=B*x0+f;n=n+1;endn>> a=[10,-1,-2;-1,10,-2;-1,-1,5];b=[72;83;42]; >> jacobi(a,b,[0;0;0])n =17ans =11.000012.000013.0000function y=seidel(a,b,x0)D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);G=(D-L)\U ;f=(D-L)\b;y=G*x0+f; n=1;while norm(y-x0)>=1.0e-6x0=y;y=G*x0+f;n=n+1;endn>> seidel(a,b,[0;0;0])n =10ans =11.000012.000013.00004、假设已知一组数据,试用插值方法绘制出(2,4.9)x∈-区间内的光滑函数曲线,比较各【求解】用下面的语句可以立即得出给定样本点数据的三次插值与样条插值,得出的结果如,可见,用两种插值方法对此例得出的结果几乎一致,效果均很理想。

>> x=[-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,...1.6,1.9,2.2,2.5,2.8,3.1,3.4,3.7,4,4.3,4.6,4.9];y=[0.10289,0.11741,0.13158,0.14483,0.15656,0.16622,0.17332,...0.1775,0.17853,0.17635,0.17109,0.16302,0.15255,0.1402,...0.12655,0.11219,0.09768,0.08353,0.07019,0.05786,0.04687,...0.03729,0.02914,0.02236];x0=-2:0.02:4.9;y1=interp1(x,y,x0,'cubic');y2=interp1(x,y,x0,'spline');plot(x0,y1,':',x0,y2,x,y,'o')x y在(0.1,0.1)~(1.1,1.1)区域内的点进行插值,并5、假设已知实测数据由下表给出,试对(,)用三维曲面的方式绘制出插值结果。

【求解】直接采用插值方法可以解决该问题,得出的插值曲面。

>> [x,y]=meshgrid(0.1:0.1:1.1);z=[0.83041,0.82727,0.82406,0.82098,0.81824,0.8161,0.81481,0.81463,0.81579,0.818 53,0.82304;0.83172,0.83249,0.83584,0.84201,0.85125,0.86376,0.87975,0.89935,0.92263,0.9495 9,0.9801;0.83587,0.84345,0.85631,0.87466,0.89867,0.9284,0.96377,1.0045,1.0502,1.1,1.1529;0.84286,0.86013,0.88537,0.91865,0.95985,1.0086,1.0642,1.1253,1.1904,1.257,1.322 2;0.85268,0.88251,0.92286,0.97346,1.0336,1.1019,1.1764,1.254,1.3308,1.4017,1.4605;0.86532,0.91049,0.96847,1.0383,1.118,1.2046,1.2937,1.3793,1.4539,1.5086,1.5335;0.88078,0.94396,1.0217,1.1118,1.2102,1.311,1.4063,1.4859,1.5377,1.5484,1.5052; 0.89904,0.98276,1.082,1.1922,1.3061,1.4138,1.5021,1.5555,1.5573,1.4915,1.346; 0.92006,1.0266,1.1482,1.2768,1.4005,1.5034,1.5661,1.5678,1.4889,1.3156,1.0454; 0.94381,1.0752,1.2191,1.3624,1.4866,1.5684,1.5821,1.5032,1.315,1.0155,0.62477; 0.97023,1.1279,1.2929,1.4448,1.5564,1.5964,1.5341,1.3473,1.0321,0.61268,0.14763] ;[x1,y1]=meshgrid(0.1:0.02:1.1);z1=interp2(x,y,z,x1,y1,'spline');surf(x1,y1,z1)axis([0.1,1.1,0.1,1.1,min(z1(:)),max(z1(:))])其实,若光需要插值曲面而不追求插值数值的话,完全可以直接采用MATLAB 下的shading interp 命令来实现。

相关文档
最新文档