if (m2<0.5)|(m2>2) error('m2超出范围!'), return, end % --------------------------------------------------- t=0:2*pi/(500-1):2*pi; y1=m1*sin(2*pi*f1*t); y2=m2*sin(2*pi*f2*t); y=y1+y2; figure
subplot(311); plot(t,y1); title('y1波形'); subplot(312); plot(t,y2); title('y2波形');
subplot(313); plot(t,y); title('y=y1+y2波形');
% =================================================== 第2题: a=1; s=0
for i=1:64 s=s+a; a=2*a; end
n=s/1.4/10^8
运行后得:n=1.3176e+011 第3题:
解 设 x:鸡翁数,则x的范围:0~19 y:鸡母数,则y的范围:0~33 z:鸡雏数,则z的范围:0~100 则: x+y+z=100
5x+3y+z/3=100 这是一个欠定方程。 for x=0:19
for y=0:33
for z=0:100
if (x+y+z==100)&(5*x+3*y+z/3==100) d=[x,y,z] end end end end
运行后得结果:
d = 0 25 75 d = 4 18 78 d = 8 11 81 d = 12 4 84
实验六:二维图形和三维图形的创建
一、实验目的
1.掌握二维图形的绘制。 2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
二、实验内容
1.生成1×10维的随机数向量a,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
x2.在同一个图形窗口中,绘制两条曲线y1?2x、y2??1/2?;并分别在靠近相应的曲线处标注其函数表达式。
3.编写一个mcircle(r)函数,调用该函数时,根据给定的半径r,以原点为圆心画一个如图所示的红色空心圆。(图例半径r=5) 4.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5,每圈上升高度为1。如左图所示。
(2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。
三、设计提示
1.Matlab允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……)指令绘制
y1?f1(x1),y2?f2(x2)等多条曲线。Matlab自动给这些曲线以不同颜色。标注可用text函数。
2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3。
四、实验报告要求
1.编写实现第二节实验内容中所使用的函数命令,并对二-2记录相应的生成结果。 2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
五、参考答案 第一题
t=rand(1,10); figure(1) subplot(221); plot(t,'r'); title('连线图') subplot(222); stem(t,'y');
title('脉冲图'); subplot(223); stairs(t,'b'); title('阶梯图'); subplot(224); bar(t,'g');
title('条形图');
第二题:
x=1:1:50; y1=2.^x; y2=(1/2).^x; figure(1)
plot(x,y1,'r',x,y2,'g'); gtext('y1=2.^x'); gtext('y2=(1/2).^x');
第3题:
function [y,t]=mcircle(r)
% 根据给定的半径r,以原点为圆心画一个红色空心圆。 t=0:2*pi/64:2*pi; y=r*ones(size(t));
subplot(121), polar(t,y,'*r') [X,Y]=pol2cart(t,y); % 或者采用如下方法转换 % X=r*cos(t); % Y=r*sin(t);
subplot(122), plot(X,Y,'*r') axis equal; axis square; 第4题:
t=0:pi/180:2*pi*5; r1=10/2;
x1=r1*cos(t); y1=r1*sin(t); z=t/(2*pi);
subplot(121), plot3(x1,y1,z) grid on
%--------------------------- r2=linspace(5,0,length(t)); x2=r2.*cos(t); y2=r2.*sin(t);
subplot(122), plot3(x2,y2,z) grid on
实验七:Matlab多项式和符号运算
一、实验目的
1.掌握Matlab多项式的运算。 2.了解符号运算。
二、实验内容(边做实验,边将生成结果和图形拷贝到Word文档中)
1.将多项式P(x)?(x?2)(x?3)(x?7)(x?1)化为x的降幂排列。 2.求一元高次方程的根。
3.求一元高次方程的根,并画出左边多项式函数在x?[?2,2]区间内的曲线。 4.求多项式f1(x)?x3?3x2?5x?7和f2(x)?8x3?6x2?4x?2的乘积f(x);并求
f(x)?f1(x)的商和余式。
f2(x)5.求y?x5?tan(4x2)?3的符号导数。
6.用符号运算求实验内容4中的f(x)的表达式。
三、设计提示
1.关于多项式运算的函数有poly、roots等。 2.多项式做加减运算时要注意等长度。
3.符号表达式的输入可以用字符串方式,也可以用sym函数。
四、实验报告要求
1.编写实现第二节实验内容中所使用的函数文件,并记录相应的生成结果和图形。 2.对于多项式的结果应以多项式向量和多项式表达式两种方式记录。
3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
五、参考答案
第1题:
P=poly([2,-3,7,-1]) 结果: P =
1 -5 -19 29 42 即:P(x)?x4?5x3?19x2?29x?42 第2题:
P1=[1 -5 -30 150 273 -1365 -820 4100 576 -2880]; x1=roots(P1)
结果: x1 =
5.0000 -4.0000 4.0000 -3.0000 3.0000 -2.0000 -1.0000 2.0000 1.0000 第3题:
P2=[1 0 -2 0 1]; x2=roots(P2) n=1;
for x=-2:0.01:2
y(n)=sum(P2.*(x.^[(length(P2)-1):-1:0])); % 或者 y(n)=x^4-2*x^2+1; n=n+1; end
x=-2:0.01:2; plot(x,y)
结果:(有重根!) x2 =
1.0000 + 0.0000i 1.0000 - 0.0000i -1.0000 + 0.0000i -1.0000 - 0.0000i 第4题:
f1=[1 3 5 7];f2=[8 -6 4 -2]; f=conv(f1,f2)
f11=[zeros(1,length(f)-length(f1)),f1] % 补0,与f同维 [q,r]=deconv(f-f11,f2) 结果: f =
8 18 26 36 -28 18 -14 即:f(x)?8x6?18x5?26x4?36x3?28x2?18x?14 f11 =
0 0 0 1 3 5 7 q =
1.0000 3.0000 5.0000 6.8750 r =
0 0 0 0 -3.7500 -4.5000 -7.2500 第5题:
y='x^5+tan(4*x^2)+3'; diff(y) 结果: ans =