第1题.
(1)
A(保存为Afun1.m)
function f = Afun1(x) ;
f=(x^2-1)*(x<=-5)+(x*cos(x))*(x>-5&x<5)+(x+5)*(x>=5);
B y=@(x) (x^2-1)*(x<=-5)+(x*cos(x))*(x>-5&x<5)+(x+5)*(x>=5);
C y=@(x) (x.^2-1).*(x<=-5)+(x.*cos(x)).*(x>-5&x<5)+(x+5).*(x>=5);
(2)
A
clc,clear
a=1;
x=[-15:0.1:15];
while a<=301
z(a)=Afun1(x(a));
a=a+1;
end
z
B
clc,clear
y=@(x) (x^2-1)*(x<=-5)+(x*cos(x))*(x>-5&x<5)+(x+5)*(x>=5);
a=1;
x=[-15:0.1:15];
while a<=301
z(a)=y(x(a));
a=a+1;
end
z
C x=[-15:0.1:15]; z=y(x);
(3)
A: fplot('Afun1',[-15,15]);
B、C: fplot(y,[-15,15]);
(4)
在第二问代码的基础上
A、B:plot(x,z);
C: plot(x,z);
第2题
rand(‘state’,sum(clock));
a=rand(3,5);
b=rand(4,7);
c=rand(6,9);
ma=max(max(a));
[ax,ay]=find(a==max(max(a)));
mb=max(max(b));
[bx,by]=find(b==max(max(b)));
mc=max(max(c));
[cx,cy]=find(c==max(max(c)));
第3题
y=@(x) sin(x).*x;
fplot(y,[0,100]);
%有16个极小值点
%估计位置
clc,clear
y=@(x) sin(x).*x;
x0=[5,10,18,22,30,37,41,49,55,61,68,74,80,87,92,99];
[x1,yval]=fminunc('y',5);
第四题
给出模型:
(符号说明)
(模型)
给出代码:
clc,clear
c=[1,0,0,0,1,0,1,0;
1,1,0,0,1,0,0,1;
1,0,1,0,1,0,0,0;
0,1,0,1,0,0,0,1;
0,0,1,0,0,1,0,0;
0,0,0,1,0,1,0,1;
];
c=-c;
c=c';
%c'是A
b=ones(8,1);
b=-b;
f=ones(6,1);
ub=ones(6,1);
lb=zeros(6,1);
intcon=1:6;
[x,val]=intlinprog(f,intcon,c,b,[],[],lb,ub);
运算结果:
x =[1,0,0,1,1,0]’
val = 3;
【问题转化】
分别给学生数量为34,29,42,21,56,18,71的点标号为1~7,
设1~2,3; 2~3,4,5; 3~4; 4~5,6,7; 5~6;6~7的边标号为 1~11
则第i边的权值为63,76,71,50,85,63,77,39,92,74,89
可以证明 应当不能取到重顶点
问题转化为在这11条边上任选两条,求在不取到重顶点的情况下,所取权值最大的两条边
【符号说明】
fi代表第i条边的权值
Xi代表是否选i(是为1,否为0)
【建立模型】
Max fi*Xi
s.t
【代码如下】
clc,clear
f=[-63;-76;-71;-60;-85;-63;-77;-39;-98;-74;-89];intcon=11;
a=[1 1 0 0 0 0 0 0 0 0 0;
1 0 1 1 1 0 0 0 0 0 0;
0 1 1 0 0 1 0 0 0 0 0;
0 0 0 1 1 1 1 1 1 0 0;
0 0 0 0 1 0 1 0 0 1 0;
0 0 0 0 0 0 0 1 0 1 1;
0 0 0 0 0 0 0 0 1 0 1];
b=ones(7,1);
aeq=ones(1,11);beq=2;
lb=zeros(11,1);ub=ones(11,1);
[x,fval]=intlinprog(f,intcon,a,b,aeq,beq,lb,ub)
val=-fval
【结果如下】
LP: Optimal objective value is -174.000000.
x =[ 0 1 0 0 0 0 0 0 1 0 0]’
fval =-174
val =174