matlab作业第10章
- 格式:doc
- 大小:256.00 KB
- 文档页数:7
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第十章 MATLAB自定义函数课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求✧通过解说与实例练习,掌握matlab创建函数M文件的方法✧掌握matlab中全局变量与局部变量的定义与用法✧通过解说与实例练习,掌握在matlab主函数M文件中创建子函数✧在实例练习过程中,回顾利用伪码编写简单程序的方法✧掌握通过创建matlab函数M文件解决生活中的计算问题二、教学重点与难点本堂课教学的重点在于引导学生掌握matlab中函数M文件的创建及应用。
本堂课的难点在于理解matlab中函数M文件主函数与子函数的区别及调用,局部变量与全局变量的定义与应用范围的区别。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
1)通过讲授法向学生讲述创建matlab函数M文件的基本方法、全局变量与局部变量的定义及用法等。
2)通过运用多媒体设备现场演示matlab创建函数M文件的应用实例。
3)在掌握创建matlab函数M文件基本方法的基础上,采用练习法引导学生创建函数M文件解决实际问题。
四、教学内容课后习题五(1)拉力测试装置在测试过程中,被测样本受均匀外力的作用产生形变。
下图中显示的是一组拉力测试数据。
根据以下公式计算应力与形变:00l l F A l σε-=和= 其中,σ是产生的应力,单位为lbf/in 2(psi);F 为施加的外力,单位为lbf;A 为样本的截面积,单位为in 2;ε为产生的形变,单位为in/in ;l 为样本的长度;0l 为样本的原始长度。
(a )测试样本是直径为0.505in 的金属杆,根据直径可以计算出金属杆的截面积,进一步利用所提供的数据计算金属杆的应力和形变。
(b )以形变为x 轴,应力为y 轴,作x-y 线图。
matlab章课后作业MATLAB基础教程1~8章作业Matlab第⼀章1.阐述Matlab的功能Matlab作为⼀种⾼级计算软件,是进⾏算法开发、数据可视化、数据分析以及数值计算的交互式应⽤开发环境,已被⼴泛应⽤于不同领域。
Matlab的基本功能包括:数学计算功能、图形化显⽰功能、M 语⾔编程功能、编译功能、图形⽤户界⾯开发功能、Simulink建模仿真功能、⾃动代码⽣成功能。
Matlab第⼆章1.创建double的变量,并进⾏计算。
(1)a=87,b=190,计算a+b、a-b、a*b。
(2)创建uint8 类型的变量,数值与(1)中相同,进⾏相同的计算。
>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =>> c*dans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u) ans = 15.4189>> sqrt(u-3*v)/(u*v) ans =0 + 0.4410i 4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i >> sin(2-8*i) 1.3553e+003 +6.2026e+002i5.判断下⾯语句的运算结果。
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 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。
第10章MATLAB特征值与特征向量的计算MATLAB是一种非常强大的数值分析和科学计算工具,可以用于计算矩阵的特征值和特征向量。
特征值和特征向量是矩阵分析中非常重要的概念,具有广泛的应用。
在MATLAB中,计算矩阵的特征值和特征向量有多种方法。
下面将介绍其中两种常用的方法。
一种方法是使用eig函数。
该函数可以计算矩阵的特征值和特征向量。
用法如下:```MATLAB[A, D] = eig(B)```其中,B是要计算特征值和特征向量的矩阵,A是一个由特征向量组成的矩阵,D是一个由特征值组成的对角矩阵。
特征值和特征向量的对应关系是D的对角线上的值与A的列是一一对应的。
另一种方法是使用eigs函数。
该函数可以计算矩阵的部分特征值和特征向量。
用法如下:```MATLAB[V, E] = eigs(A, k)```其中,A是要计算特征值和特征向量的矩阵,k是要计算的特征值和特征向量的数量。
这两种方法的计算结果是一样的,只是使用的方法略有不同。
eig函数计算所有的特征值和特征向量,而eigs函数只计算部分特征值和特征向量。
计算矩阵的特征值和特征向量在很多领域中都有重要的应用。
例如,在图像处理中,特征值和特征向量可以用于图像压缩和识别;在控制系统中,特征值和特征向量可以用于分析系统的稳定性和性能等。
虽然MATLAB提供了方便的函数来计算特征值和特征向量,但在实际应用中,需要注意以下几点:1.确保输入的矩阵是方阵,否则将无法计算特征值和特征向量。
2.需要注意计算所得的特征值和特征向量的精度。
MATLAB中的计算结果可能存在误差,因此在应用中需要进行适当的误差处理。
3.特征值和特征向量的计算量较大,如果矩阵的维度较大,可能会导致计算时间过长。
对于大规模问题,可以考虑使用近似方法来计算特征值和特征向量。
总之,MATLAB提供了方便的函数来计算矩阵的特征值和特征向量,这对于很多领域的数值分析和科学计算都非常有用。
在使用这些函数时,需要注意输入矩阵的维度和计算结果的精度,并选择适当的方法来计算特征值和特征向量。
ones表示1矩阵zeros表示0矩阵ones(4)表示4x4的1矩阵zeros(4)表示4x4的0矩阵zeros(4,5)表示4x5的矩阵eye(10,10)表示10x10的单位矩阵rand(4,5)表示4x5的伴随矩阵det(a)表示计算a的行列式inv(a)表示计算a的逆矩阵Jordan(a)表示求a矩阵的约当标准块rank(a)表示求矩阵a的秩[v,d]=eig(a)对角矩阵b=a’表示求a矩阵的转置矩阵sqrt表示求平方根exp表示自然指数函数log自然对数函数abs绝对值第一章一、5(1)b=[97 67 34 10;-78 75 65 5;32 5 -23 -59]; >> c=[97 67;-78 75;32 5;0 -12];>> d=[65 5;-23 -59;54 7];>> e=b*ce =5271 11574-11336 6641978 3112(2)a=50:1:100二、1 、x=-74;y=-27;z=(sin(x.^2+y.^2))/(sqrt(tan(abs(x+y)))+pi) z =2、a=-3.0:0.1:3.0;>> b=exp(-0.3*a).*sin(a+0.3)3、x=[2 4;-0.45 5];y=log(x+sqrt(1+x.^2))/2y = 4、a*b表示a矩阵和b矩阵相乘a.*b表示a矩阵和b矩阵单个元素相乘A(m,n)表示取a矩阵第m行,第n列A(m,:)表示取a矩阵第m行的全部元素A(:,n)表示取a矩阵的第n列全部元素A./B表示a矩阵除以b矩阵的对应元素,B.\A等价于A./BA.^B表示两个矩阵对应元素进行乘方运算A.^2表示a中的每个元素的平方A^2表示A*A例:x=[1,2,3];y=[4,5,6];z=x.^yz=1 32 729指数可以是标量(如y=2).底数也可以是标量(如x=2)5、a=1+2i;>> b=3+4i;>> c=exp((pi*i)/6)c =d=c+a*b/(a+b)d =第二章二、4、(1)y=0;k=0;>> while y<3k=k+1;y=y+1/(2*k-1);end>> display([k-1,y-1/(2*k-1)])ans =第三章二1(1)x=0:pi/10:2*pi;>> y=x-x.^3/6;>> plot(x,y)(2)x=0:pi/10:2*pi; y=(exp(-x.^2/2))/2*pi;plot(x,y)(3)x=-8:0.01:8;y=sqrt((64-x.^2)/2);plot(x,y)(4)t=0:0.1:8*pi; >> x=t.*sin(t);>> y=t.*cos(t); >> plot(x,y)x=0:pi/100:2*pi;y1=exp(-0.5*x);y2=exp(-0.5*x).*sin(2*x);plot(x,y1,x,y2)>> title('x from 0 to 2{\pi} ');>> xlabel('variable x');>> ylabel('variable y');>> text(1.5,0.5,'曲线y1=e^(-0.5x)');>> text(3,0.1,'曲线y2=cos(4{\pi}x)e^{-0.5x}');>> legend('y1','y2')variable xvariabley2、(1)y1=2*x-0.5;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);>> k=find(abs(y-x)<1e-2);>> t1=t(k)t1 =>> z=sin(3.*(t1)).*cos(t1) z =>> plot(t,x,t,y,'k:',t1,z,'bp');(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,2,1);x=0:0.01:pi;y=sin(1./x);plot(x,y)subplot(1,2,2);fplot('sin(1./x)',[1,100])4、t=0:pi:2*pi;y=1./(1+exp(-t));subplot(2,2,1);%图形窗口的分割bar(t,'group'); %绘制柱形图(分组)subplot(2,2,2);barh(t,'stack'); %绘制柱形图(堆积)subplot(2,2,3);loglog(t,y); %函数使用全对数坐标,x,y均采用常用对数刻度subplot(2,2,4);semilogy(t,y); %函数使用半对数坐标,y轴为常用对数刻度,x轴仍为线性刻度101010101010105、(1)theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);(2)x=linspace(0,2*pi,100);a=1>> r=a.*(1+cos(x));polar(x,r);2706、(1)t=0:pi/10:2*pi;>> x=exp((-t)/20).*cos(t);>> y=exp((-t)/20).*sin(t);>> z=t;>> plot3(x,y,z);(2)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; surf(x,y,z); shading interp;第五章二1、a=rand(1,30000);mean(a) %求平均数 ans = >>b=std(a) %求标准差 b =>> c=max(a) c =>> d=min(a) d =size(find(a>0.5))/size(a)ans =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')ww =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.')5、(1)、(2) p1=[1,2,0,7]; p2=[1,-2]; p3=[1,0,5,1]; p12=conv(p1,p2); >>p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3]; >> roots(p) ans =-3.46561.2400(3) a=[-1,4,3;2,1,5;0,5,6]; >>y1=polyval(p,a) %以矩阵a 的每一个元素为自变量 y1 =-29 291 95 19 -3 697 -13 697 1427 >>y2=polyvalm(p,a) %以矩阵a 为自变量 y2 =391 2084 3273502 2693 4207720 3775 5892 6、(1)z=fzero('3*x-sin(x)+1',0) %求x=0时附近的根z =第八章二、2t=0:pi/20:2*pi;x=sin(t);y=cos(t);x1=sin(7*t);y1=cos(7*t);h=plot(x,y,x1,y1);set(h,'marker','x','linewidth',2);set(gca,'xtick',-1:0.1:1);title('篮筐')3、x=0:pi/10:5*pi;y=exp(-0.2*x).*cos(x)+2;h=plot(x,y);set(gca,'color','red','linestyle','-','linewidth',3) ;text(5,2.4,'y=exp(-0.2*x).*cos(x)+2'); 4、t=-pi:pi/100:pi;x=cos(t);y=sin(t);z=t;h=plot(t,x,t,y,t,z);set(h,'linestyle','-','linewidth',3);字符串例ch='Welcome to Beijing';subch=ch(12:18) 选12~18个字符串(空格也算)subch =Beijing>> k=find(ch>='a'&ch<='z'); 找到所有的小写字母的位置>> ch(k)=ch(k)-('a'-'A'); 将小写字母变成大写字母>> char(ch)ans =WELCOME TO BEIJING>> length(k) 统计小写字母的个数ans =14例:已知y=1-1/2+1/3-1/4.........-1/100求y 的值y=0;>> n=100;>> for i=1:100;y=y+(-1)^(i-1)/i;end>> disp(y)绘制二维曲线图x=0:pi/100:2*pi;>> y1=0.2*exp(-0.5*x).*cos(4*pi*x);>> y2=1.5*exp(-0.5*x).*cos(pi*x);>> plotyy(x,y1,x,y2);绘制三维图像例:x=sint+tcosty=cost-tsintz=tt=0:pi/10:10*pi;x=sin(t)+t.*cos(t);y=cos(t)-t.*sin(t);z=t;plot3(x,y,z);axis([-30 30 -30 30 0 35]); 坐标轴的最大值与最小值title('line in 3-D space'); 图形的题目>> xlabel('x');ylabel('y');zlabel('z'); 标注坐标>> grid on; 加网格线xz三维例]2/,0[],,0[,cossin22ππ∈∈+=yxyxz[x,y]=meshgrid(0:pi/100:pi,0:pi/100:pi/ 2);>> z=sin(x.^2)+cos(y.^2);>> mesh(x,y,z);>> axis([0 4 0 1.8 -1.5 1.5]);t=0:pi/20:2*pi;subplot(1,2,1);[x,y,z]=cylinder(sin(t),30);surf(x,y,z); 绘制三维曲面图subplot(1,2,2);>> [x,y,z]=peaks(100);>> mesh(x,y,z); 绘制三维网格图多项式求导例:f(x)=1/x^2+5p=[1];>> q=[1,0,5];>> [p,q]=polyder(p,q)注:c=conv(a,b) 表示a多项式与b 多项式乘积[p,r]=deconv(a,b) 表示a多项式与b 多项式相除其中p为商向量r为余数向量p=polyder(p) 表示求p的导数p=poleder(p,q) 表示求p乘以q的导数[p,q]=poleder(p,q) 表示p除以q的导数多项式求根例:f(x)=2x^4-12x^3+3x^2+5p=[2,-12,3,0,5];>> x=roots(p);>> p=[2,-12,3,0,5];x=roots(p) 求方程f(x)=0的根x =5.72460.8997>> g=poly(x) 已知多项式的根求多项式g =符号求导x=a(t-tsint)y=b(1-cost) 求y对x的一阶导数syms x y a b t;>> f21=a*(t-sin(t));>> f22=b*(1-cos(t));>> diff(f22)/diff(f21) 求y对x的一阶导数ans =b*sin(t)/a/(1-cos(t))注:diff(f1,x,2) 表示f1对x的二阶导数diff(f3,x)表示z对x的偏导diff(f3,y)表示z对y的偏导求不定积分int(f) 求f的不定积分f1=int(f,a,b) 求f在a,b之间的定积分eval(f1)计算积分值符号求极限syms x h>> f=(sin(x+h)-sin(x))/h;>> limit(f,h,0) h趋向于0ans =cos(x) 例2f=sym('(1+t/x)^x');limit(f,inf) f 趋向于无穷 ans = exp(t) 例3f=sym('x*(sqrt(x^2+1)-x)');limit(f,sym('x'),inf,'left') x 趋向于正无穷ans = 1/2 大小写ch='Welcome to Beijing'; subch=ch(12:18)subch =Beijing>> k=find(ch>='A'&ch<='Z'); ch(k)=ch(k)-('A'-'a'); >> char(ch)ans =welcome to beijing>> length(k)ans =2课堂习题2一、求方程组⎪⎩⎪⎨⎧=-+=++=-+234326454510243z y x z y x z y x 的解,用三种方法。
10-2建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标左键之后显示出Left Button Pressed 字样。
>> hf=figure('color','r','windowbuttondownfcn','axis off;text(0.1,0.5,''Left Button Pressed'',''fontsize'',30)')
hf =
1
10-3利用图形对象绘制下列曲线,要求先利用缺省属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。
(1)4
2
11x x y ++= x=0:0.1:10;
y=((1+x.^2)/(1+x.^4));
hf=plot(x,y);
>> set(hf,'color','r','linestyle',':','marker','*','linewidth',1);
(4)⎪⎩⎪⎨⎧==325t
y t x >> t=0:2:100;
>> x=t.*t;
>> y=5*t.^3;
>> hf=plot(x,y);
>>set(hf,'color','b','linestyle',':','marker','p','linewidth',0.3);
10-4利用图形对象绘制下列三维图形,要求与上题相同。
(1)⎪⎩
⎪⎨⎧===t z t y t x sin cos
>> t=0:0.1:2*pi;
>> x=cos(t);
>> y=sin(t);
>> z=t;
>> hf=plot3(x,y,z);
z
(4)3y
>> x=0:1:50;
>> y=0:1:50;
>> z=y.^3;
>> hf=plot3(x,y,z);。