中南大学matlab课后习题(1)
- 格式:doc
- 大小:795.00 KB
- 文档页数:34
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判断下列级数的收敛性,若收敛,求出其收敛值。
第一章 5题已知a=4.96,b=8.11,计算)ln(b a eba +-的值。
解:clear clc a=4.96; b=8.11;exp(a-b)/log(a+b) ans =0.0167 6题已知三角形的三边a=9.6,b=13.7, c=19.4,求三角形的面积。
提示:利用海伦公式area =))()((c s b s a s s ---计算,其中S=(A+B+C)/2. 解:clear clc a=9.6; b=13.7; c=19.4; s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c)) s =21.3500 第二章 8题已知S=1+2+2^2+2^3+……+2^63,求S 的值 解:clear clc S=0;for i=0:1:63 S=S+2^i; end S S =1.8447e+019 9题分别用for 和while 循环结构编写程序,计算∑=-1001n 1n 2)(的值。
解:clear clc s=0;for n=1:100 s=s+(2*n-1); end s s =10000 clear clc n=1; s=0;while n<=100 s=s+(2*n-1); n=n+1; end s s =10000 第三章 2题在同一坐标下绘制函数x ,,2x-,2x xsin(x)在()∏∈,0x 的曲线。
解:clear clcx=0:0.2:pi; y1=x; y2=x.^2; y3=-(x.^2); y4=x.*sin(x);plot(x,y1,'-' ,x,y2,'-' ,x,y3,'-' ,x,y4,'-')0.511.522.53-10-8-6-4-202468109题用不同的线型和颜色在同一坐标内绘制曲线y1=2ex5.0 、y2=sin(2∏x )的图形。
习题二1.如何理解“矩阵是MATLAB最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
因此,矩阵是MATLAB最基本、最重要的数据对象。
2.设A和B是两个同维同大小的矩阵,问:(1)A*B和A.*B的值是否相等?答:不相等。
(2)A./B和B.\A的值是否相等?答:相等。
(3)A/B和B\A的值是否相等?答:不相等。
(4)A/B和B\A所代表的数学含义是什么?答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。
3.写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。
答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5])(2)删除矩阵A的第7号元素。
答:A(7)=[](3)将矩阵A的每个元素值加30。
答:A=A+30;(4)求矩阵A的大小和维数。
答:size(A);ndims(A);(5)将向量t的0元素用机器零来代替。
答:t(find(t==0))=eps;(6)将含有12个元素的向量x转换成34矩阵。
答:reshape(x,3,4);(7)求一个字符串的ASCII码。
答:abs(‘123’); 或double(‘123’);(8)求一个ASCII码所对应的字符。
答:char(49);4. 下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9;B=10-A;...L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0]L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0]L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0]L4的值为[4, 5, 6]5. 已知23100.7780414565532503269.5454 3.14A -⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥-⎣⎦完成下列操作:(1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32⨯子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。
习题二1.如何理解“矩阵就是MATLAB最基本得数据对象”?答:因为向量可以瞧成就是仅有一行或一列得矩阵,单个数据(标量)可以瞧成就是仅含一个元素得矩阵,故向量与单个数据都可以作为矩阵得特例来处理。
ﻩ因此,矩阵就是MATLAB最基本、最重要得数据对象。
2.设A与B就是两个同维同大小得矩阵,问:(1)A*B与A。
*B得值就是否相等?答:不相等。
(2)A。
/B与B。
\A得值就是否相等?答:相等。
(3)A/B与B\A得值就是否相等?答:不相等、(4)A/B与B\A所代表得数学含义就是什么?答:A/B等效于B得逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵得逆左乘A矩阵,即inv(B)*A。
3.写出完成下列操作得命令。
(1)将矩阵A第2~5行中第1,3, 5列元素赋给矩阵B。
答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5])(2)删除矩阵A得第7号元素、答:A(7)=[](3)将矩阵A得每个元素值加30、答:A=A+30;(4)求矩阵A得大小与维数、答:size(A);ndims(A);(5)将向量t得0元素用机器零来代替。
答:t(find(t==0))=eps;(6)将含有12个元素得向量x转换成矩阵、答:reshape(x,3,4);(7)求一个字符串得ASCII码。
答:abs(‘123’); 或double(‘123');(8)求一个ASCII码所对应得字符、答:char(49);4.下列命令执行后,L1、L2、L3、L4得值分别就是多少?A=1:9;B=10-A;。
.、L1=A==B;L2=A<=5;L3=A〉3&A〈7;L4=find(A>3&A<7);答:L1得值为[0, 0, 0, 0, 1, 0, 0,0, 0]L2得值为[1, 1, 1, 1, 1,0, 0, 0, 0]L3得值为[0, 0, 0, 1,1, 1, 0, 0, 0]L4得值为[4,5, 6]5.已知完成下列操作:(1)取出A得前3行构成矩阵B,前两列构成矩阵C,右下角子矩阵构成矩阵D,B与C得乘积构成矩阵E。
1 数字1.5e2,1.5e3 中的哪个与1500相同吗?1.5e32 请指出如下5个变量名中,哪些是合法的?abcd-2xyz_33chan 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 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。
习题二1.如何理解“矩阵是MATLAB最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
因此,矩阵是MATLAB最基本、最重要的数据对象。
2.设A和B是两个同维同大小的矩阵,问:(1)A*B和A.*B的值是否相等?答:不相等。
(2)A./B和B.\A的值是否相等?答:相等。
(3)A/B和B\A的值是否相等?答:不相等。
(4)A/B和B\A所代表的数学含义是什么?答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。
3.写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。
答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5])(2)删除矩阵A的第7号元素。
答:A(7)=[](3)将矩阵A的每个元素值加30。
答:A=A+30;(4)求矩阵A的大小和维数。
答:size(A);ndims(A);(5)将向量t的0元素用机器零来代替。
答:t(find(t==0))=eps;(6)将含有12个元素的向量x转换成34矩阵。
答:reshape(x,3,4);(7)求一个字符串的ASCII码。
答:abs(‘123’); 或double(‘123’);(8) 求一个ASCII 码所对应的字符。
答:char(49);4. 下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9;B=10-A;...L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0]L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0]L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0]L4的值为[4, 5, 6]5. 已知23100.7780414565532503269.5454 3.14A -⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥-⎣⎦完成下列操作:(1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32⨯子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。
第十一章实验指导1,(1)(2)2,M文件的函数为:function x=f(t)x=(8*1/(pi^2))*(cos(2*pi*t)+(1/9)*cos(3*2*pi*t)+(1/25)*cos(5*2*pi*t))3,4,5,5,限幅:function [sys,x0,str,ts]=xianSfun(t,x,u,flag,max,min) switch flag,case 0sizes= simsizes;sizes.NumContStates = 0;sizes.NumDiscStates = 0;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;sys= simsizes(sizes);str =[];x0 =[];ts =[-1 0];case 3if u>maxsys=max;elseif u<minsys=min;elsesys=u;endcase{1,2,4,9}sys=[];otherwiseerror(['Unhandled flag=',num2str(flag)]); end绝对值:function [sys,x0,str,ts]=abs(t,x,u,flag)switch flagcase 0sizes= simsizes;sizes.NumContStates = 0;sizes.NumDiscStates = 0;sizes.NumOutputs = 1;sizes.NumInputs = 1;sizes.DirFeedthrough = 1;sizes.NumSampleTimes = 1;sys= simsizes(sizes);str = [];x0 =[];ts =[0 0];case 3if u>0sys=u;else u<0sys=-u;endcase {1,2,4,9}sys=[];otherwiseerror(['Unhandled flag=',num2str(flag)]);end思考练习:1,两个主要功能Simu仿真和Link连接即该软件;天价模块——模块编辑——模块的连接——模块的参数和属性设置——设置仿真参数——启动系统仿真与仿真结果分析2,适用sinks模块库中的Scope模型或其他显示模块来观察有关信号的变化曲线,也可以将结果存放在MATLAB中的工作空间,工艺后处理和使用。
matlab课后习题及答案详解第1章练习题1.安装matlab时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装matlab时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即matlab选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
2.matlab操作方式桌面存有几个窗口?如何并使某个窗口瓦解桌面沦为单一制窗口?又如何将瓦解过来的窗口再次置放至桌面上?与其他计算机语言相比较,matlab语言注重的特点就是什么?matlab系统由那些部分共同组成?在matlab操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的close按钮,一个是可以使窗口成为独立窗口的undock按钮,点击undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择dock……菜单项就可以将独立的窗口重新防止的桌面上。
matlab具备功能强大、使用方便、输出简便、库函数多样、开放性弱等特点。
matlab系统主要由开发环境、matlab数学函数库、matlab语言、图形功能和应用程序接口五个部分组成。
3.如何设置当前目录和搜寻路径,在当前目录上的文件和在搜寻路径上的文件存有什么区别?命令历史窗口除了可以观测前面键入的命令外,除了什么用途?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的setpath菜单项来完成。
在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被matlab运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。
命令历史窗口除了用作查阅以前键入的命令外,还可以轻易执行命令历史窗口中选取的内容、将选取的内容拷贝到剪贴板中、将选取内容轻易拷贝到m文件中。
分析四杆连杆机构的运动方向由X和Y方向的长度关系确定为:从上述两种方程中消除错误!未找到引用源。
,便可化成一个只包括错误!未找到引用源。
和错误!未找到引用源。
的方程,给定错误!未找到引用源。
,可求出满足此方程的错误!未找到引用源。
由(2)得将(1)式中的错误!未找到引用源。
得出在错误!未找到引用源。
给定时,求能使f(错误!未找到引用源。
)=0的错误!未找到引用源。
值,然后,错误!未找到引用源。
就可以由(3)式求得,为了求能使f=0的错误!未找到引用源。
的值,可调用Matlab中的fzero函数。
为此,要把f=f(错误!未找到引用源。
)单独定义为一个Matlab函数ex417f.m,在主程序中要调用它。
为了把长度参数传给子程序,在主程序和子程序中都加了全局变量语句(gl obal),全局变量容易造成程序的混乱,要特别小心,在复杂的程序中应尽量避免。
求得错误!未找到引用源。
,错误!未找到引用源。
和错误!未找到引用源。
后,就不难根据杆1的角速度求初杆3的角速度,其方法有以下两种:(1)求瞬时速度,这是通常理论力学的解法,其依据就是杆2两端点a和b的速度沿杆方向的分量相等,通过三角关系,有(2)求运动全过程的角位置、角速度和角函数式,加速度曲线,这只有借助于计算工具才能做到,因为用手工算一个点就不胜其烦,算几十个点是很难想象的,而由Matlab编程调用fzero要求给出一个近似猜测值,若连续算几十个点,前一个解就可作为后一个解的猜测值,从而带来方便。
下面分别提供ex714a.m和ex714b.m两个程序来表述这两种方法,他们所要调用的函数程序命名为ex714f.m。
流程图开始输入基线及三根杆的长度建立m文件ex714f.m输入杆1角速度i=2:181;th1=theta(i);theta3(i)=fzero(‘ex714.m,the ta3(i-1));对应于theta1最小值处的theta3的近似值fzero函数求theta3的初始输出值再次调用fzero函数计算每个i对应的theta3.画图结束Matlab程序1.主程序ex714a.mglobal L0 L1 L2 L3 th1L0=20,L1=8,L2=25,L3=20;%输入基线及3根杆的长度L1、L2、L3theta1=input(‘当前角theta1=’);theta3=input(‘对应于theta1的theta3近似值=’);th1=theta1;theta3=fzero(‘ex714f’,theta3);%求当前角输出角theta3theta2=asin((L3*sin(theta3)-L1*sin(theta1))/L2);w1=input(‘w1=’);w3=L1*w1*cos(pi/2-theta1+theta2)/(L3*cos(theta3-pi/2-theta2))2.主程序ex714b.mglobal L0 L1 L2 L3 th1L0=20,L1=8,L2=25,L3=20;%输入基线及3根杆的长度L1、L2、L3w1=input(‘杆1角速度w1=’);theta1=linspace(0,2*pi,181);%把杆一圈分为180份,间隔2度。
第二章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+(c+b)/(pi+a*b*c)-exp(2))/(tan(b+c)+a);xx =0.9829(3)a=3.32;b=-7.9;y=2*pi*a^2*[(1-pi/4)*b-(0.8333-pi/4)*a];yy=-128.4271(4)t=[2,1-3i;5,-0.65];z=1/2*exp(2*t)*log(t+sqrt(1+t^2));zz=1.0e+004*0.0057 - 0.0007i 0.0049 - 0.0027i1.9884 -0.3696i 1.7706 - 1.0539i2,已知a,b,求下列表达式的值。
a=[-1,5,-4;0,7,8;3,61,7];b=[8,3,-1;2,5,3;-3,2,0]; (1)a+6*bans=4723-1012 3726-15 73 7a^2-b+eye(3)ans=-18 -217 1722 533 10921867 526(2)a*bans=14 14 16-10 51 21125 328 180a.*bans =-8 15 40 35 24-9 122 0b*aans =-110-157 228533 -1 28(3)a/bans =1.2234 -0.9255 2.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936b\aans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043(4)[a,b]ans=-1 5 -4 8 3 -10 7 8 2 5 3361 7 -3 2 0[a([1,3],:);b^2]ans =-15 -43 61 773 37 117 37 13-20 1 93.已知a,完成下列操作。
a=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];(1)输出a在[10,25]范围内的全部元素。
k=find(a>10&a<25)a(k)k =1ans=23(2)取出a前3行构成矩阵b,前两列构成矩阵c,右下角3*2子矩阵构成矩阵d,b与c的乘积构成矩阵e。
b=a(1:3,:)b =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.00005.000032.0000 5.0000 0 32.0000c=a(:,1:2)c =23.0000 10.000041.0000 -45.000032.0000 5.00006.0000 -9.5400d=a(2:4,3:4)d =65.0000 5.00000 32.000054.0000 3.1400e=b*ce =1.0e+003 *0.9141 -0.22391.20802.71231.1330 -0.2103(3)分别求表达式额e<d,e&d,e|d和~e|~d的值。
e<dans=0 10 00 1e&dans=1 10 111e|dans=1 1111 1~e|~dans =0 01 00 04,产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及他们的条件数Th 和Tp,判断哪个矩阵性能更好,为什么?format ratH=hilb(5)H=1 1/2 1/3 1/41/51/2 1/31/4 1/51/61/3 1/41/5 1/61/71/4 1/5 1/6 1/71/81/5 1/6 1/7 1/81/9P=pascal(5)P=1 1 1 111 2 3 451 3 6101514 10 20351 5 15 3570Hh=det(H)Hh =1/266716800000Hp=det(P)Hp =1Th=cond(H)Th =476607Tp=cond(P)Tp=178868/21P矩阵性能更好,因为Tp更接近1.5.已知A,求A的特征值及特征向量,并分析其数学意义。
A=[-29,6,18;20,5,12;-8,8,5]A =-29 6 1820 5 12-8 8 5[V,D]=eig(A,'nobalance')V =1 361/1013 493/1574-1227/1438 -11290/593 551/788 331/713D =-3595/1420 00 -3755/35700 04697/279第三章1.从键盘输入一个3位整数,将它反向输出。
如输入639,输出为936.clearm=input('请输入一个三位数:');m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);m=m1+m2*10+m3*100;disp(m);请输入一个三位数:4533542.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
c=input('请输入一个百分制分数:');ifc>=90&c<=100 %用if语句实现disp('A');elseifc>=80&c<90disp('B');elseifc>=70&c<80disp('C');elseifc>=60&c<70disp('D');elseifc>=0&c<60disp('E');elsedisp('输入出错');end请输入一个百分制分数:88Bc=input('请输入一个百分制分数:');switch fix(c/10)%用switch语句实现case{9,10}m='A';case{8}m='B';case{7}m='C';case{6}m='D';casenum2cell(0:5)m='E';otherwisem='输入出错';enddisp(m);请输入一个百分制分数:98A3.输入20个数,求其中最大数和最小数。
要求分别用循环结构和调用MATLAB的max函数、m in函数来实现。
a=input('请输入二十个数');%用循环结构实现max=a(1);min=a(1);for i=1:20;if max<a(i);max=a(i);endif min>a(i);min=a(i);endendmaxmin请输入二十个数[ 3 465 3 44 5 5 5 6 655 4 3322 2 2 6]max=44min=24.,当a取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,求各点的函数值。
要求分别用顺序结构和循环结构实现。
clearfora=-3.0:0.1:3.0%用循环结构实现y=((exp(0.3*a)-exp(-0.3*a))/2)*sin(a+0.3)+log((0.3+a)/2) endy =0.7388+ 3.1416iy=0.7696 + 3.1416iy =0.7871 + 3.1416iy =0.7913 + 3.1416iy=0.7822 + 3.1416iy =0.7602 + 3.1416iy=0.7254 + 3.1416iy=0.6784+ 3.1416iy =0.6196 +3.1416iy =0.5496 + 3.1416iy =0.4688+3.1416iy =0.3780 + 3.1416iy =0.2775 + 3.1416iy=0.1680 + 3.1416iy =0.0497 + 3.1416iy =-0.0771+ 3.1416iy =-0.2124+ 3.1416iy =-0.3566 + 3.1416iy =-0.5104 + 3.1416iy =-0.6752 + 3.1416iy =-0.8536 + 3.1416iy =-1.0497+ 3.1416iy =-1.2701 + 3.1416iy =-1.5271 + 3.1416iy =-1.8436+ 3.1416iy=-2.2727+ 3.1416iy=-2.9837 +3.1416iy =-37.0245y =-3.0017y =-2.3085y =-1.8971y=-1.5978y =-1.3575y =-1.1531y =-0.9723y =-0.8083y=-0.6567y =-0.5151y=-0.3819y =-0.2561y =-0.1374y=-0.0255y =0.0792y =0.1766y=0.2663y =0.3478y=0.4206y =0.4841y =0.5379y =0.5815y =0.6145y =0.6366y =0.6474y=0.6470y =0.6351y =0.6119y=0.5777y =0.5327y =0.4774y =0.4126y =0.33885.当n分别取100、1000、10000时,求下列各式的值:(1)clearn=input('输入一个数:');%用循环结构实现a=0;fori=1:na=a+1/(i^2);enddisp(a);j=1:n;%用sum函数实现b=sum(1./(j.^2));输入一个数:34b=1.6160(2)()()()()(=)clearn=input('输入一个数:');%用循环结构实现a=1;fori=1:na=((2*i*i*2)/((2*i-1)*(2*i+1)))*a;enddisp(a);输入一个数:81.52536.建立65矩阵,要求输出矩阵第n行元素。
当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
cleara=rand(5,6);n=input('请输入一个数:');if n>5n=5a(n,:)disp('输入超出范围');elsea(n,:)end请输入一个数:4ans =0.7792 0.0119 0.5285 0.6892 0.9133 0.0782 请输入一个数:7n =5ans=0.4909 0.1112 0.0965 0.05980.04300.4509 输入超出范围7.已知(1)当f(n)=n+10ln(n^2+5)时,y的值是多少。