matlab程序设计作业.docx
《matlab程序设计作业.docx》由会员分享,可在线阅读,更多相关《matlab程序设计作业.docx(19页珍藏版)》请在冰豆网上搜索。
matlab程序设计作业
Matlab程序设计作业
姓名:
学号:
专业:
«MATLAB程序设计》作业
1、考虑如下x-y一组实验数据:
x=[1,2,3,4,5,6,7,8,9,10]
y二[1.2,3,4,4,5,4.7,5,5.2,6,7.2]
分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出
MATLAB代码和运行结果。
7
6
5
4
3
2
原始曲线
6.5
6
5.5
5
4.5
4
3.5
3
2.5
10
一次拟合
三次拟合
x=[1,2,3,4,5,6,7,8,9,10];y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2];figure;
plot(x,y)p1=polyfit(x,y,1);y1=polyval(p1,x);figure;
plot(x,y1)p2=polyfit(x,y,3);y2=polyval(p2,x);
figure;plot(x,y2)
2、在[0,3n区间,绘制y二Sin(x)曲线(要求消去负半波,即(n2n)区间内的函数值置零),求出曲线y的平均值,以及y的最大值及其最大值的位置。
给出执行代码和运行结果。
x=0:
pi/1000:
3*pi;
y=Sin(x);
y1=(y>=0).*y;%消去负半波figure
(1);
plot(x,y1,'b');
a=mean(y1)%求出y1的平均值
b=max(y1)%求出y1的最大值b,以及最大值在矩阵中的位置;
d=x(find(y1==b))
>>ex1
a=
0.4243
b=
1
d=
1.57087.8540
>>
0.9
0.8
0.7
0.6
0.5
0.4-
0.3-
0.2-
0.1-
3、给出函数z=xA2+yA2的三维曲面的绘制结果和MATLAB代码,
x=-3:
0.1:
3;
y=-4:
0.1:
4;
[x,y]=meshgrid(x,y);
z=x.A2+y.A2;
-2
-4
-4
-2
0
mesh(x,y,z);
4、将一幅彩色图像文件转换为灰度图像,存储并显示转换后的灰度图
像,给出运行结果和执行代码
x=imread('hehua.jpg');x=rgb2gray(x);
figure
(1);
imshow(x);
h=figure
(1);saveas(h,'gray.jpg');
原图
处理后图像
5、结合自身研究方向,自拟一题目,采用MATLAB语言实现一具有完整功能的算法,给出运行结果和执行代码。
题目:
用遗传算法找函数的最大值
functionmain()
clear
clc
popsize=100;%种群大小
chromlength=10;
%二进制编码长度
pc=0.6;%交叉概率
pm=0.001;%变异概率
pop=initpop(popsize,chromlength);
fori=1:
100
[objvalue]=cal_objvalue(pop);
fitvalue=objvalue;
[newpop]=selection(pop,fitvalue);
[newpop]=crossover(newpop,pc);
[newpop]=mutation(newpop,pm);
pop=newpop;
[bestindividual,bestfit]=best(pop,fitvalue);x2=binary2decimal(bestindividual);
x1=binary2decimal(newpop);
%初始种群
%十算适应度值(函数值)
%选择操作
%交叉操作
%变异操作
%更新种群
%寻找最优解
[y1]=cal_objvalue(newpop);
ifmod(i,10)==0
figure;
fplot('10*sin(5*x)+7*abs(x-5)+10',[010]);
holdon;
title(['迭代次数为n='num2str(i)]);
plot(x1,y1,'*');
end
end
fprintf('thebestXis--->>%5.2f\n',x2);
fprintf('thebestYis--->>%5.2f\n',bestfit);
迭代次数为n=10
60
I[
L
i
L
1
50
M
-
-
Fi
「\
1
/
40
-■'
ri
i
ri
\
I
*却
i1"if\
*
I!
I)
/\
30
[如
1
i
1
a
1
1
~1
J
1
1r
1]
1
i1
\I1
八
20
I\
\\Ii
ii
t1
iI\
1j\
1
1
i
ir\1
'ii
10
-
f
1J
1
I
f
1
■
0
J
r『
r
r
I
r
r
012345678910
迭代次数为n=20
012345678910
迭代次数为n=30
迭代次数为n=40
012345678910
迭代次数为n=50
迭代次数为n=60
60
10
0L~1[L
0123
迭代次数为n=70
60
50
40
30
20
10
0
60
50
40
30
20
10
0
迭代次数为n=80
60
50
40
30
20
10
迭代次数为n=100
1
2
3
4
5
6
7
8
9
10