MATLAB第一次实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB第一次实验报告
1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像
x(n+1) = a*x(n)-b*(y(n)-x(n)^2);
y(n+1) = b*x(n)+a*(y(n)-x(n)^2)
程序:function [y1,y2]=draw(a,b,c,x1,y1)
x=[];
y=[];
x(1)=x1;
y(1)=y1;
n=c;
for i=1:n
x(i+1)=a*x(i)-b*(y(i)-x(i)^2);
y(i+1)=b*x(i)+a*(y(i)-x(i)^2);
end
y1=x;
y2=y;
plot(y1,y2)
输入:draw(5,1,1,1,2)
2. 编程实现奥运5环图,允许用户输入环的直径。程序:
clc
clear
r=input('input a mnmber:')
color1=['b','k','r'];
color2=['y','g'];
t=linspace(0,2*pi);
a1=r+0.2*r;
a2=3*r+0.4*r;
a3=5*r+0.6*r;
a=[a1,a2,a3];
b1=2*r+0.3*r;
b2=4*r+0.5*r;
b=[b1,b2];
for i=1:3
x=r*cos(t)+a(i);
y=r*sin(t);
plot(x,y,color1(i),'linewidth',5) axis([0,7*r,-2*r,1.5*r]);
hold on
axis equal
end
for n=1:2
x=r*cos(t)+b(n);
y=r*sin(t)-r;
plot(x,y,color2(n),'linewidth',5) hold on
end
axis off
输入:6(圆的半径)
3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort函数。
程序:
function y=qipaofa(s)
s
n=length(s);
for i=1:n
for j=1:n-i
if s(j)>s(j+1)
t=s(j );
s(j)=s(j+1);
s(j+1)=t;
end
end
end
s
输入:qipaofa([1 4 2 6 8 3])
输出:s =
1 4
2 6 8 3
s =
1 2 3 4 6 8
总结与改进:
本次实验共完成三个程序,实验中的题都要求输入不同的数据所以要求熟练的使用funtion函数,是程序可以输入不同的值而得到不同的输出结果。还有plot函数画图的使用以及对图像输出颜色,宽度等的调整。还有递归法,循环的使用。
此次实验的改进主要是对于五环的程序的改进,五环的图形是环套环但第一个程序未得到这个效果所以对这个程序进行了改进,让五环的每个环分段输出具有环套环的效果。
改进程序:
clc
clear
r=input('input r:');
lw=8;
alp=linspace(0.75*pi,1.75*pi);
x=r*cos(alp)-1.2*r;
y=r*sin(alp)+r;
plot(x,y,'b','linewidth',lw)%˦1 hold on
axis equal
axis([-2.8*r,5.4*r,-1.6*r,2.6*r]); alp=linspace(pi/2,2.2*pi);
x=r*cos(alp)+0.01*r;
y=r*sin(alp);
plot(x,y,'y','linewidth',lw)%Ȯ1 alp=linspace(-0.3*pi,0.8*pi);
x=r*cos(alp)-1.2*r;
y=r*sin(alp)+r;
plot(x,y,'b','linewidth',lw)%˦2 alp=linspace(0.75*pi,1.75*pi);
x=r*cos(alp)+1.25*r;
y=r*sin(alp)+r;
plot(x,y,'k','linewidth',lw)%ºÚ1 alp=linspace(0.15*pi,0.5*pi);
x=r*cos(alp)+0.01*r;
y=r*sin(alp);
plot(x,y,'y','linewidth',lw)%Ȯ2 alp=linspace(0.5*pi,2.2*pi);
x=r*cos(alp)+2.49*r;
y=r*sin(alp);
plot(x,y,'g','linewidth',lw)%ÂÌ1 alp=linspace(-0.3*pi,0.8*pi);
x=r*cos(alp)+1.25*r;
y=r*sin(alp)+r;
plot(x,y,'k','linewidth',lw)%ºÚ2 alp=linspace(0.75,1.75*pi);
x=r*cos(alp)+3.7*r;
y=r*sin(alp)+r;
plot(x,y,'r','linewidth',lw)%ºì1 alp=linspace(0.15*pi,0.5*pi);
x=r*cos(alp)+2.49*r;
y=r*sin(alp);
plot(x,y,'g','linewidth',lw)%ÂÌ2