建立数学模型
设xi=1表示Ai被选中,xi=0表示Ai没被选中。
则数学模型是:
max 1500x1+2000x2+1300x3+2300x4+2800x5
st x1+x2=1
x4+x5=1
x1+x4<=1
x2-x5=0
xi=0或1,i=1,2,3,4,5
2编程求解
matlab程序:
f = [-1500 -2000 -1300 -2300 -2800];
A = [1 0 0 1 0];
b = 1;
Aeq = [1 1 0 0 0;0 0 0 1 1;0 1 0 0 -1];
beq = [1;1;0];
x = bintprog(f,A,b,Aeq,beq)
解出来是:
x =
0
1
1
0
1
也就是说运送A2,A3,A5
下面matlab程序,按照你的要求编写的。
fs=100;N=200;
lag=100;
%randn('state',0); %设置产生随机数的初始状态(噪声)
n=0:N-1;t=n/fs;
x1=sin(2pi10t)+2sin(2pi15t)
y=fft(x1,N); %计算频谱
mag=abs(y);
f=nfs/N;
figure(1)
subplot(2,2,1),plot(t,x1);
title('原始信号'),xlabel('时间/s');
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)2/N);
title('频谱图'),xlabel('频率/Hz');
[c,lags]=xcorr(x1,lag,'unbiased'); % 自相关
subplot(2,2,3),plot(lags/fs,c);
title('自相关信号'),xlabel('时间/s');
m=length(c)-1;
z=fft(c,m);
mag_z=abs(z);
ff=(0:m-1)fs/m;
subplot(2,2,4),plot(ff(1:m/2),mag_z(1:m/2)2/m);
title('自相关频谱'),xlabel('频率/Hz');
figure(2)
[c1,lags1]=xcorr(x1,randn(1,length(t)),lag,'unbiased');
m1=length(c1)-1;
z1=fft(c1,m1);
mag_z1=abs(z1);
ff1=(0:m1-1)fs/m1;
subplot(2,1,1),plot(lags1/fs,c1);
title('互相关信号'),xlabel('时间/s');
subplot(2,1,2),plot(ff1(1:m1/2),mag_z1(1:m1/2)2/m1);
title('互相关频谱'),xlabel('频率/Hz');
如果数据都放在atxt记事本中。
代码如下:(如果a是向量这按下面的,如果是矩阵,需算两次)
load 'atxt'
amin=min(a);%%最小值 若为矩阵,则amin=min(min(a))
amax=max(a);%%最大值 同上
aavg=mean(a);%%平均值 同上
avar=var(a);
plot(a);
我调试了下 错误出在第七行
我把前六行各变量的值给你列出来,你看一下,为什么会出现这样的错误
Name Size Bytes Class AttributesX 3x4 96 double
Y 2x4 64 double
eps 1x1 8 double
m 1x1 8 double
n 1x1 8 double
s 1x1 8 double
对于第七行
>> zeros(1,n)ans =
0 0 0 0
>> epsones(1,m+s)
ans =
10e-10
10000 10000 10000 10000 10000
以上就是关于matlab编程:0-1规划问题:向高手求程序代码。全部的内容,包括:matlab编程:0-1规划问题:向高手求程序代码。、用matlab语言产生一个正弦信号,进行频谱分析和自相关分析,求教~~~~~谢谢啊、matlab的编程问题,求关于平均数,最小值,最大值,方差等简单的数据处理的程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)