MATLAB课后实验答案
MATLAB全部实验及答案

MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤4、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B5、 已知⎪⎭⎫⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
数学实验(MATLAB)课后习题答案

数学实验练习2.1画出下列常见曲线的图形。
(其中a=1,b=2,c=3)1、立方抛物线3xy=解:x=-5:0.1:0;y=(-x).^(1/3);y=-y;x=0:0.1:5;y=[y,x.^(1/3)];x=[-5:0.1:0,0:0.1:5];plot(x,y)2、高斯曲线2x e=y-解:fplot('exp(-x.^2)',[-5,5])3、笛卡儿曲线)3(13,1333222axy y x t at y t at x =++=+=解:ezplot('x.^3+y.^3-3*x*y',[-5,5])xyx.3+y.3-3 x y = 0或t=-5:0.1:5; x=3*t./(1+t.^2); y=3*t.^2./(1+t.^2); plot(x,y)4、蔓叶线)(1,1322322xa x y t at y t at x -=+=+=解:ezplot('y.^2-x.^3/(1-x)',[-5,5])xyy.2-x.3/(1-x) = 0或t=-5:0.1:5; x=t.^2./(1+t.^2); y=t.^3./(1+t.^2); plot(x,y)5、摆线)cos 1(),sin (t b y t t a x -=-= 解:t=0:0.1:2*pi;x=t-sin(t); y=2*(1-cos(t)); plot(x,y)6、星形线)(sin ,cos 32323233a y x t a y t a x =+== 解:t=0:0.1:2*pi; x=cos(t).^3; y=sin(t).^3;plot(x,y)或ezplot('x.^(2/3)+y.^(2/3)-1',[-1,1])xyx.2/3+y.2/3-1 = 07、螺旋线ct z t b y t a x ===,sin ,cos 解:t=0:0.1:2*pi; x=cos(t); y=2*sin(t); z=3*t; plot3(x,y,z) grid on8、阿基米德螺线θa r = 解:x =0:0.1:2*pi; r=x; polar(x,r)902701809、对数螺线θa e r = 解:x =0:0.1:2*pi; r=exp(x); polar(x,r)90270180010、双纽线))()((2cos 22222222y x a y x a r -=+=θ 解:x=0:0.1:2*pi; r=sqrt(cos(2*x)); polar(x,r)90270或ezplot('(x.^2+y.^2).^2-(x.^2-y.^2)',[-1,1]) grid onxy(x.2+y.2).2-(x.2-y.2) = 011、双纽线)2)((2sin 222222xy a y x a r =+=θ 解:x=0:0.1:2*pi; r=sqrt(sin(2*x)); polar(x,r)90270或ezplot('(x.^2+y.^2).^2-2*x*y',[-1,1]) grid onxy(x.2+y.2).2-2 x y = 012、心形线)cos 1(θ+=a r 解:x =0:0.1:2*pi; r=1+cos(x); polar(x,r)90270练习2.21、求出下列极限值。
MATLAB课后实验答案1

实验一 MATLAB 运算基础1、 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解: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 O S +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦ch =123d4e56g9(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3的变化与解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1、 求分段函数的值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时的y 值。
MATLAB)课后实验答案

实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解: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 +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。
(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。
(3) 计算系数矩阵A 得条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。
MATLAB)课后实验答案[1]
![MATLAB)课后实验答案[1]](https://img.taocdn.com/s3/m/ce751dceaf45b307e9719708.png)
实验一 MATLAB 运算基础之南宫帮珍创作1. 先求下列表达式的值, 然后显示MATLAB 工作空间的使用情况并保管全部变量. (1)122sin851z e =+ (2)21ln(2z x =+, 其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3)0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=-- (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩, 其中t解: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 O S +⎡⎤=⎢⎥⎣⎦. 解: M 文件如下;5. 下面是一个线性方程组:(1) 求方程的解.(2) 将方程右边向量元素b 3改为0.53再求解, 并比力b 3的变动和解的相对变动.(3) 计算系数矩阵A的条件数并分析结论.解: M文件如下:实验三选择结构法式设计1. 求分段函数的值.用if语句实现, 分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值.解:M文件如下:2. 输入一个百分制成果, 要求输出成果品级A、B、C、D、E.其中90分~100分为A, 80分~89分为B, 79分~79分为C, 60分~69分为D, 60分以下为E.要求:(1) 分别用if语句和switch语句实现.(2) 输入百分制成果后要判断该成果的合理性, 对分歧理的成果应输出犯错信息.解:M文件如下3. 硅谷公司员工的工资计算方法如下:(1) 工作时数超越120小时者, 超越部份加发15%.(2) 工作时数低于60小时者, 扣发700元.(3) 其余按每小时84元计发.试编程按输入的工号和该号员工的工时数, 计算应发工资.解:M文件下实验四循环结构法式设计1. 根据2222211116123nπ=++++, 求π的近似值.当n分别取100、1000、10000时, 结果是几多?要求:分别用循环结构和向量运算(使用sum函数)来实现.解:M文件如下:运行结果如下:2. 根据11113521yn=++++-, 求:(1) y<3时的最年夜n值.(2) 与(1)的n值对应的y值.解:M—文件如下:3. 考虑以下迭代公式:其中a、b为正的学数.(1) 编写法式求迭代的结果, 迭代的终止条件为|x n+1-x n|≤10-5, 迭代初值x0=1.0, 迭代次数不超越500次.(2) 如果迭代过程收敛于r, 那么r的准确值是, 当(a,b)的值取(1,1)、(8,3)、(10,0.1)时, 分别对迭代结果和准确值进行比力.解:M 文件如下:运算结果如下;5. 若两个连续自然数的乘积减1是素数, 则称这两个边境自然数是亲密数对, 该素数是亲密素数.例如, 2×3-1=5, 由于5是素数, 所以2和3是亲密数, 5是亲密素数.求[2,50]区间内:(1) 亲密数对的对数.(2) 与上述亲密数对对应的所有亲密素数之和.解:M 文件:实验五 函数文件4. 设2411()(2)0.1(3)0.01f x x x =+-+-+, 编写一个MATLAB 函数文件fx.m, 使得调用f(x)时, x 可用矩阵代入, 得出的f(x)为同阶矩阵.解:运算结果:5. 已知(40)(30)(20)f y f f =+(1) 当f(n)=n+10ln(n2+5)时, 求y的值.(2) 当f(n)=1×2+2×3+3×4+...+n×(n+1)时, 求y的值.解:(1)(2).实验八数据处置与多项式计算2. 将100个学生5门功课的成果存入矩阵P中, 进行如下处置:(1) 分别求每门课的最高分、最低分及相应学生序号.(2) 分别求每门课的平均分和标准方差.(3) 5门课总分的最高分、最低分及相应学生序号.(4) 将5门课总分按从年夜到小顺序存入zcj中, 相应学生序号存入xsxh.提示:上机调试时, 为防止输入学生成果的麻烦, 可用取值范围在[45,95]之间的随机矩阵来暗示学生成果.解:M文件:运行结果:3. 某气象观测得某日6:00~18:00之间每隔2h的室内外温度(0C)如实验表1所示.实验表1 室内外温度观测结果(0C)时间h 6 8 10 12 14 16 18试用三次样条插值分别求出该日室内外6:30~18:30之间每隔2h各点的近似温度(0C).解:M文件:运行结果:4. 已知lgx在[1,101]区间10个整数采样点的函数值如实验表2所示.实验表2 lgx在10个采样点的函数值x 1 11 21 31 41 51 61 71 81 91 101试求lgx的5次拟合多项式p(x), 并绘制出lgx和p(x)在[1,101]区间的函数曲线.解:M文件:5. 有3个多项式P1(x)=x4+2x3+4x2+5, P2(x)=x+2, P3(x)=x2+2x+3, 试进行下列把持:(1) 求P(x)=P1(x)+P2(x)P3(x).(2) 求P(x)的根.(3) 当x取矩阵A的每一元素时, 求P(x)的值.其中:(4) 当以矩阵A为自变量时, 求P(x)的值.其中A的值与第(3)题相同.解:M文件:实验九 数值微积分与方程数值求解1. 求函数在指定点的数值导数.实验六 高层绘图把持3. 已知在-5≤x ≤5区间绘制函数曲线.解:M 文件:2. 用数值方法求定积分.(1)210I π=⎰的近似值. (2) 2220ln(1)1x I dt x π+=+⎰ 解:M 文件:运行结果:3. 分别用3种分歧的数值方法解线性方程组.解:M 文件:运行结果:4. 求非齐次线性方程组的通解.解:M文件:.5. 求代数方程的数值解.(1) 3x+sin x-e x=0在x0=1.5附近的根.(2) 在给定的初值x0=1, y0=1, z0=1下, 求方程组的数值解.解:M文件:(2). M文件:运行结果:6. 求函数在指定区间的极值.(1) 3cos log ()x x x x x f x e ++=在(0,1)内的最小值.(2)33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值.解:M 文件:8. 求微分方程组的数值解, 并绘制解的曲线. 解: 令y1=x,y2=y,y3=z; 这样方程酿成:'''0.51(0)0,(0)1,(0)1x yz y xz z xyx y z =⎧⎪=-⎪⎨=-⎪⎪===⎩,自变量是tM 文件:实验十 符号计算基础与符号微积分一、1. 已知x=6,y=5, 利用符号表达式求提示:界说符号常数x=sym(‘6’), y=sym(‘5’). 解:M 文件:运行结果:2. 分解因式.(1) x4-y4(2) 5135解:M文件:运行结果:5. 用符号方法求下列极限或导数.解:M文件:运行结果:6. 用符号方法求下列积分.解:M文件:运行结果:。
(完整版)MATLAB)课后实验答案[1]
![(完整版)MATLAB)课后实验答案[1]](https://img.taocdn.com/s3/m/f6c08c5902d276a201292ece.png)
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课后实验答案

第四章作业4.1、a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:'); endb=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)])4.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)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.4、A=input('请输入20个数的一个行向量:');m=A;a=m;b=m;for m=Aif a>=ma=m;elseif b<=mb=m;endenddisp(['最小数是:',num2str(a)])disp(['最大数是:',num2str(b)])4.5、s=0;a=0;for b=1:64c=2^a;a=a+1;s=s+c;enddisp(['2的0次方到63次方的和是:',num2str(s)]) 4.6.1、sum1=0;for n=1:100x=(-1)^(n+1)*(1/n);sum1=sum1+x;disp(['当n取100时:sum=',num2str(sum1)])sum2=0;for n=1:1000x=(-1)^(n+1)*(1/n);sum2=sum2+x;enddisp(['当n取1000时: sum=',num2str(sum2)])sum3=0;for n=1:10000x=(-1)^(n+1)*(1/n);sum3=sum3+x;enddisp(['当n取10000时:sum=',num2str(sum3)])4.8、clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)'); [f1,f2]=juzhenji(a,b);5.1x=-2*pi:pi/1000:2*pi;y=100./(1+x.^2);plot(x,y)x=-2*pi:pi/1000:2*pi;y=(1/2*pi)*exp(-0.5*x.^2);plot(x,y)t=-2*pi:pi/1000:2*pi;x=sin(t);y=cos(t);plot(x,y)t=-2*pi:pi/1000:2*pi;x=t.^2;y=5*t.^3;plot(x,y,'r:')实验31、clearm=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];for x=mif x<0&x~=-3y1=x^2+x-6;disp(['y= ',num2str(y1)])elseif x>=0&x<5&x~=2&x~=3y2=x^2-5*x+6;disp(['y= ',num2str(y2)])elsey3=x^2-x-1;disp(['y= ',num2str(y3)])endend2、clear allx=input('请输入成绩:');while (x>100|x<0)x=input('输入错误,请重新输入成绩:'); endswitch fix(x/10)case {9,10}disp('A')case {8}disp('B')case {7}disp('C')case {6}disp('D')case {0,1,2,3,4,5}disp('E')end3、clear allx=input('请输入工号:');y=input('请输入工作时长:');if y>120a=84*120+(y-120)*84*0.15;disp(['您本月工资是:',num2str(a)])elseif y<60b=84*y-700;disp(['您本月工资是:',num2str(b)])elsec=84*y;disp(['您本月工资是:',num2str(c)])end4、clear alla=fix(rand(1)*89)+10;disp(['a=',num2str(a)])b=fix(rand(1)*89)+10;disp(['b=',num2str(b)])x=input('请输入一个四则运算符号','s');if abs(x)==43c=a+b;elseif abs(x)==45c=a-b;elseif abs(x)==42c=a*b;elseif abs(x)==47c=a/b;enddisp(['a于b的计算结果是:',num2str(c)])5、clear alla=fix(rand(5,6)*89)+10;n=input('请输入一个数(输出结果是一个5*6的矩阵的该行元素):'); if n>5|n<0b=a(5:5,:);disp(['输入错误,程序输出最后一行的元素:',num2str(b)])elsec=a(n:n,:);disp(['输出结果是:',num2str(c)])end实验41、n=input(“请输入n值:”);s1=0;for k=1:n;x=1/(k^2);s1=s1+x;pi=sqrt(6*s1);2、clearn=1;y=0;while (y<3)x=1/(2*n-1);n=1+n;y=y+x;enddisp(['y<3时n的最大值是:',num2str(n-2)])disp(['相应的的y值是:',num2str(y-x)])5、clearp=0;l=0;H=[];for m=2:49a=m;b=m+1;c=a*b-1;for k=1:cif rem(c,k)==0l=l+1;endendif l==2disp(['亲密数对是','(',num2str(a),' ,',num2str(b),')'])p=p+1;H=[H,c];endl=0;endsum=sum(H);disp(['亲密数对的个数是:',num2str(p)])disp(['亲密数对的和是:',num2str(sum)])实验61、clear allx=linspace(0,2*pi,101);y=(0.5+3*sin(x)/(1+x.^2)).*cos(x);plot(x,y);title('y=[0.5+3sin(x)/(1+x^{2})]cos(x)的图像如下:') 2/1 clear allx=linspace(-2*pi,2*pi,500);y1=x.^2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,'b-',x,y2,'r--',x,y3,'k:');2//3 clear allx=linspace(-2*pi,2*pi,500);y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(3,3,1);bar(x,y1); %条形图subplot(3,3,2);stairs(x,y1); %阶梯图subplot(3,3,3);stem(x,y1); %杆图subplot(3,3,4);bar(x,y2);subplot(3,3,5);stairs(x,y2);subplot(3,3,6);stem(x,y2);subplot(3,3,7);bar(x,y3);subplot(3,3,8);stairs(x,y3);subplot(3,3,9);stem(x,y3);3、clear allt=linspace(-5,5,200);H=[];for x=tif x<=0y1=(x+sqrt(pi))/exp(2);elseif x>0y1=0.5*log(x+sqrt(1+x.^2));endH=[H,y1];endplot(t,H,'r:');4、clear alla=input('请输入一个数a:');b=input('请输入一个数b:');n=input('请输入一个数n:');theta=linspace(0,2*pi,500);rho=a*sin(b+n.*theta);polar(theta,rho);5、clear allx1=linspace(-5,5,21);y1=linspace(0,10,31);[x,y]=meshgrid(x1,y1);z=cos(x).*cos(y).*exp(-0.25.*sqrt(x.^2+y.^2)) subplot(2,1,1);surf(x,y,z);subplot(2,1,2);contour3(x,y,z,30);6、clear alls=linspace(0,0.5*pi,10); t=linspace(0,1.5*pi,30); [S,T]=meshgrid(s,t);x=cos(S).*cos(T);y=cos(S).*sin(T);z=sin(S);colormap(prism);figure(1)surf(x);figure(2)surf(y);shading flat; figure(3)surf(z);shading interp。
MATLAB程序设计及应用(第二版)课后实验答案

MATLAB程序设计及应⽤(第⼆版)课后实验答案Matlab 课后实验题答案实验⼀ MATLAB 运算基础1. 先求下列表达式的值,然后显⽰MATLAB ⼯作空间的使⽤情况并保存全部变量。
(1) 0122sin851z e=+ (2) 221ln(1)2z x x =++,其中2120.455i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=-- (4) 2242011122123t t z t t t t t ?≤,其中t =0:0.5:2.5 解: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;z3=(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)2. 已知: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] 解:M ⽂件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B][A([1,3],:);B^2]3. 设有矩阵A 和B1234166789101769,111213141502341617181920970212223242541311A B-???==-???(1) 求它们的乘积C 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%实验一MATLAB运算基础%第一题%(1)z1=2*sin(85*pi/180)/(1+exp(2)) %(2)x=[2,1+2i;-0.45,5];z2=0.5*log(x+sqrt(1+x.^2))%(3)a=-3.0:0.1:3.0;z3=(exp(0.3*a)-exp(-0.3*a))/2.* sin(a+0.3)+log((0.3+a)/2)%(4)t=0:0.5:2.5;z4=t.^2.*(t>=0&t<1)+(t.^2-1).*( t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t <3)%第二题A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];A+6*B A-B+eye(size(A))A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2]%第三题A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B F=size(C)D=C(F(1)-2:F(1),F(2)-1:F(2)) whos%第四题%(1):A=100:999;B=rem(A,21);C=length(find(B==0))%(2):A='lsdhKSDLKklsdkl';k=find(A>='A'&A<='Z');A(k)=[]%实验二MATLAB矩阵分析与处理%第一题E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag([2,3]);%判断AB是否相等A=[E,R;O,S];A^2B=[E,(R+R*S);O,S^2]%第二题H=hilb(5) P=pascal(5)Hh=det(H) Hp=det(P)Th=cond(H) Tp=cond(P)%第三题:A=fix(10*rand(5))H=det(A)Trace=trace(A)Rank=rank(A)Norm=norm(A)%第四题:A=[-29,6,18;20,5,12;-8,8,5] [V,D]=eig(A)%数学意义略%第五题方法一:%(1):A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4, 1/5,1/6];b=[0.95,0.67,0.52]';x=inv(A)*b%(2):B=[0.95,0.67,0.53]';x=inv(A)*B%(3):cond(A)%第五题方法二:A=hilb(4)A(:,1)=[]A(4,:)=[]B=[0.95,0.67,0.52]';X=inv(A)*BB1=[0.95,0.67,0.53]';X1=inv(A)*B1N=cond(B)N1=cond(B1)Na=cond(A) %矩阵A为病态矩阵%第六题A=[1,4,9;16,25,36;49,64,81]B=sqrtm(A)C=sqrt(A) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算%实验三选择程序结构设计%第一题程序一x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5. 0];y=[]; %建立存放所有y值的矩阵for x0=xif x0<0&x0~=-3y=[y,x0*x0+x0-6]; elseifx0>=0&x0<5&x0~=2&x0~=3y=[y,x0*x0-5*x0+6]; elsey=[y,x0*x0-x0-1]; end endx %输出所有xy %输出所有y%第一题程序二 x=[-5,-3,1,2,2.5,3,5]; y=[]; for a=1:7 if x(a)<0&x(a)~=-3 y=[y,(x(a))^2+x(a)-6]; else if x(a)>=0&x(a)<5&x(a)~=2&x(a)~=3 y=[y,(x(a))^2-5*x(a)+6]; else y=[y,x(a)*x(a)-x(a)-1]; end end %第二题程序一:x=input('请输入一个百分制成绩:');if x>100|x<0 disp('您输入的成绩不是百分制成绩,请重新输入。
'); elseif x<=100&x>=90 disp('A');else if x<=89&x>=80 disp('B');else if x<=79&x>=70 disp('C');else if x<=69&x>60 disp('D');else disp('E'); end end%第二题程序二:s=input('请输入一个成绩(0分到100分之间):'); %s 用于存放成绩while1 %判断输入成绩的合理性 if s<0|s>100disp('输入的成绩需在0到100之间,请重新输入:')s=input('请输入一个成绩(0分到100分之间):'); else break; end end switch fix(s/10) %对成绩做出等级判断 case {9,10} disp('A') case 8 disp('B') case 7 disp('C') case 6 disp('D') otherwise disp('E') end %第三题 n=input('请输入员工工号:'); h=input('该员工工作时数是:'); if h>120 x=(h-120)*84*(1+0.15)+120*84;elseif h<60 x=h*84-700; else x=h*84; end disp([num2str(n),'号员工','的应发工资为',num2str(x)]);%第四题(还可以用switch 语句实现) a=fix(10+(99-10)*rand(1,2)) %产生两个随机整数 x=a(1); y=a(2);t=input('请输入运算符号:','s'); if t=='+' z=x+y;else if t=='-' z=x-y; else if t=='*' z=x*y; else if t=='/' z=x/y; enddisp([num2str(x),t,num2str(y),'=',num2str(z)]) %输出运算结果 %第五题a=rand(5,6) %产生5x6的随机矩阵 n=input('请输入您要输出矩阵的第几行:');if n>5disp('超出了矩阵的行数,矩阵的最后一行为:')a(5,:)elsedisp(['矩阵的第',num2str(n),'行为:'])a(n,:) end%实验四循环结构程序设计%第一题程序一s=0;n=input('n=?');for i=1:ns=s+1/i/i;endPI=sqrt(6*s)pi%第一题程序二n=input('n=?');a=1:n;b=1./a.^2;PI=sqrt(6*sum(b)) pi%第二题y=0; n=1;while(y<3)y=y+1/(2*n-1); n=n+1;end y=y-1/(2*(n-1)-1)n=n-2%第三题a=input('a=?');b=input('b=?'); Xn=1;Xn1=a/(b+Xn); n=0;while abs(Xn1-Xn)>1e-5Xn=Xn1; Xn1=a/(b+Xn);n=n+1;if n==500break; end endnXn1r1=(-b+sqrt(b*b+4*a))/2r2=(-b-sqrt(b*b+4*a))/2%第四题for i=1:100if i==1f(i)=1;elseif i==2f(i)=0;else if i==3 f(i)=1; elsef(i)=f(i-1)-2*f(i-2)+f(i-3); end endmax(f) min(f) sum(f)length(find(f>0))length(find(f==0))length(find(f<0))%第五题:s=0;n=0;for i=2:49b=i*(i+1)-1;m=fix(sqrt(b));for j=2:mif rem(b,j)==0break end endif j==m n=n+1;s=s+b;end end n s%实验五函数文件%第一题function y=mat1(x)y=[exp(x),log(x),sin(x),cos(x)] ; %建立函数文件mat1.m%然后在命令窗口调用上述函数文件:y=mat1(1+i)%第二题程序一function[a,b,N,M]=shiyanwu2(m,n,t)A=[m*cos(t*pi/180),-m,-sin(t*pi /180),0;m*sin(t*pi/180),0,cos(t *pi/180),0;0,n,-sin(t*pi/180),0 ;0,0,-cos(t*pi/180),1];B=[0,9.8*m,0,9.8*n];C=inv(A)*B';a=C(1);b=C(2);N=C(3);M=C(4);%然后在命令窗口调用该函数文件:m1=input('m1=');m2=input('m2=');theta=input('theta=');[a1,a2,N1,N2]=shiyanwu2(m1,m2,t heta)%第二题程序二function X=mat2(m1,m2,t)g=9.8;A=[m1*cos(t*pi/180),-m1,-sin(t* pi/180),0;m1*sin(t*pi/180),0,co s(t*pi/180),0;0,m2,-sin(t*pi/18 0),0;0,0,-cos(t*pi/180),1];B=[0;m1*g;0;m2*g];X=inv(A)*B;%在命令窗口调用该函数文件:X=mat2(1,1,60)%第三题function flag=mat3(x)flag=1;for i=2:sqrt(x)if rem(x,i)==0flag=0;break;end end%在命令窗口调用该函数文件:for i=10:99j=10*rem(i,10)+fix(i/10);if mat3(i)&mat3(j)disp(i)end end %第四题function y=fx(x)y=1./((x-2).^2+0.1)+1./((x-3).^ 4+0.01);%在命令窗口调用该函数文件:y=fx(2) a=[1,2;3,4]; y=fx(a) %第五题 %(1)function f1=mat5(n)f1=n+10*log(n*n+5);%在命令窗口中调用该函数文件:y=mat5(40)/(mat5(30)+mat5(20)) %(2)方法一 function f2=mat6(n) f2=0; for i=1:nf2=f2+i*(i+1); end%在命令窗口中调用该函数文件如:y=mat6(40)/(mat6(30)+mat6(20)) %(2)方法二 function f2=mat7(n) i=1:n; m=i.*(i+1);f2=sum(m); end%在命令窗口中调用该函数文件如:y=mat7(40)/(mat7(30)+mat7(20)) %实验六高层绘图操作%第一题:x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.^2)).*cos (x); plot(x,y)%第二题:%(1)x=linspace(-2*pi,2*pi,100);y1=x.^2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,'b-',x,y2,'r:',x,y3,' y--');text(4,16,'\leftarrow y1=x^2'); text(6*pi/4,-1,'\downarrowy2=cos(2*x)');text(-1.5*pi,-2.25*pi*pi,'\upar row y3=y1*y2');%(2)x=linspace(-2*pi,2*pi,100);y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);%分区plot(x,y1);title('y1=x^2');%设置标题subplot(1,3,2);plot(x,y2);title('y2=cos(2*x)');subplot(1,3,3);plot(x,y3);title('y3=x^2*cos(2*x)');%(3)x=linspace(-2*pi,2*pi,20);y1=x.^2;subplot(2,2,1);%分区bar(x,y1);title('y1=x^2的条形图');%设置标题subplot(2,2,2);stairs(x,y1);title('y1=x^2的阶梯图');subplot(2,2,3);stem(x,y1);title('y1=x^2的杆图');subplot(2,2,4);fill(x,y1,'r');%如果少了'r'则会出错title('y1=x^2的填充图');%其他的函数照样做。