matlab编程:0-1规划问题:向高手求程序代码。

matlab编程:0-1规划问题:向高手求程序代码。,第1张

建立数学模型

设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     Attributes

  X         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的编程问题,求关于平均数,最小值,最大值,方差等简单的数据处理的程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10629761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存