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
2 3 4 5 6 7 8 9 10
7
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)曲线(要求消去负半波,即(n 2n)区间内的函数值置零),求出曲线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.5708 7.8540
>>
1
0.9
0.8
0.7
0.6
0.5
0.4 -
0.3 -
0.2 -
0.1 -
3、给出函数z=x A2+y A2的三维曲面的绘制结果和MATLAB代码, x=-3:0.1:3;
y=-4:0.1:4;
[x,y]=meshgrid(x,y);
z=x.A2+y.A2;
mesh(x,y,z);
12 3
4
-2
-4 -4 -2
4、将一幅彩色图像文件转换为灰度图像,存储并显示转换后的灰度图像,给出运行结果和执行代码
x=imread( 'hehua.jpg' ); x=rgb2gray(x);
figure(1);
imshow(x);
h=figure(1); saveas(h,'gray.jpg');
原图
处理后图像
5、结合自身研究方向,自拟一题目,采用MATLAB语言实现一具有完整功能的算法,给出运行结果和执行代码。
题目:用遗传算法找函数的最大
值
fun cti on mai n()
clear
clc
popsize = 100; %种群大小
chromle ngth = 10; %二进制编码长度
pc = 0.6; %交叉概率
pm = 0.001; %变异概率
pop = in itpop(popsize,chromle ngth);
for i=1:100
[objvalue] = cal_objvalue(pop);
fitvalue = objvalue;
[n ewpop] = selecti on( pop,fitvalue);
[n ewpop] = crossover (n ewpop,pc);
[n ewpop] = mutati on(n ewpop,pm);
pop = n ewpop;
[best in
dividual,bestfit]=best(pop,fitvalue); x2 = bin ary2decimal(besti ndividual);
x1 = bin ary2decimal( newpop);
%初始种群
%十算适应度值(函数值)
%选择操作
%交叉操作
%变异操作
%更新种群
%寻找最优解