第十届数学建模新生杯比赛(B题)

问题一

建立模型:线性规划模型 

符号说明

符号符号说明
x1动物饲料
x2谷物饲料
min目标值

列出约束条件与目标函数

 约束条件:

               < 1> \frac{x1}{(x1+x2)}> 0.2

               < 2> x1+x2=500

               < 3> x1,x2>0

               <4 > x2<6000/7 

目标函数: min=x1*0.30+x2*0.18

 需要调用linprog函数,使用方法参照A题。

代码实现:

clc;
clear;
c = [0.3 0.18];  % min = 0.3*x1 + 0.18*x2 
A = [-4 1];    % x1/(x1 + x2) > 0.2 化简
b = [0];
Aeq = [1 1];  % 一天的饲料量 100 * 0.5
beq = 500;
vlb = [0; 0];  
vub = [ ; 6000./7]; % [0 0] <= [x1, x2] <= [+∞, 6000/7]
[x, val] = linprog(c, A, b, Aeq, beq, vlb, vub)

 运行结果:

Optimization terminated.

x =

  100.0000
  400.0000


val =

  102.0000

问题二

建立模型:平衡运输问题的数学模型

1、符号说明

符号符号说明
C_{ij}A_{i}   运往   B_{j}  的运费
X_{ij}A_{i}   运往  B_{j}   的供应
a_{i}i  地的产量
b_{j}j 地的销量

 代码实现:

clc;
clear;
c=[4,12,4,11;2,10,3,9;8,5,1,6];
c=c'; c=c(:) ; %取c的转置;c取矩阵内所有数值
Aeq=zeros(7,12); %将a赋值为7*12的零矩阵%
for i=1:3
    Aeq(i,4*i-3:4*i)=1;
    Aeq (i+3,i:4:12)=1; Aeq(7,4:4:12)=1; 
    %等式系数向量
    end
beq=[16;10;22;8;14;12;14];
lb=zeros(12,1);intcon=1:12; %lu取12*1的零矩阵;intcon从1取到12%
[x,y]=intlinprog(c,intcon,[],[], Aeq, beq,lb,[]); 
x=reshape(x,[1,12]),y %重新调整矩阵的行数、列数%

运行结果:

x =

     0     0    12     4     8     0     0     2     0    14     0     8


y =

   244

(注:x的12*1矩阵代表A1、A2、A3分别运往B1、B2、B3、B4的量(可理解为3*4矩阵))

问题三

建立模型:多元回归分析模型

模型建立与求解

在matlab中创建txt文件(这里命名为test)并输入(可作为附件提交):

1 135.0 13.70 12.68 80.32 0.16 16 102.5 17.48 15.13 73.35 0.19
2 130.0 18.09 17.51 83.65 0.26 17 100.0 15.73 14.41 68.75 0.13
3 137.5 13.43 21.73 76.18 0.19 18 97.5 12.16 12.55 61.38 0.15
4 140.0 16.15 16.10 84.09 0.19 19 95.0 13.04 11.15 58.41 0.13
5 142.5 14.67 15.48 81.72 0.16 20 92.5 13.03 14.87 69.55 0.16
6 127.5 10.90 10.76 70.84 0.09 21 90.0 12.40 10.45 59.27 0.14
7 125.0 13.70 12.68 80.32 0.16 22 87.5 15.22 12.03 46.35 0.19
8 122.5 21.49 18.00 78.78 0.28 23 85.0 13.39 11.83 52.41 0.21
9 120.0 15.06 15.70 70.60 0.18 24 82.5 12.53 11.99 52.38 0.16
10 117.5 13.48 14.07 72.60 0.20 25 80.0 16.30 12.33 55.99 0.16
11 115.0 15.28 15.35 79.83 0.22 26 78.0 14.07 12.04 50.66 0.21
12 112.5 15.01 13.84 68.59 0.14 27 75.0 16.50 13.12 61.61 0.11
13 110.0 17.39 16.44 74.59 0.21 28 72.5 18.44 13.54 55.94 0.18
14 107.5 18.03 16.49 77.11 0.19 29 70.0 11.80 11.73 52.75 0.13

代码:

clc ;
clear ; 
n=29;m=4;
q=load('test.txt');
x=[q(:,1:6);15 105.0 13.75 13.57 79.80 0.14;q(:,7:12);]
y=[x(:,2)];
x1=[x(:,3)];
x2=[x(:,4)];
x3=[x(:,5)];
x4=[x(:,6)];
X=[ones(n,1),x1,x2,x3,x4]
[b,bint,r,rint,s]=regress(y,X);
s2=sum(r.^2)/(n-m-1);
b,bint,s,s2
rcoplot(r,rint)

运行结果:

得到残差图,此时可见第15与第20、22点是异常点,于是删除上述三点,对其进行优化,再次进行回归得到改进后的回归模型的系数、系数置信区间与统计量。

数据处理后代码:

clc ;
clear;
n=26;m=4;
q=load('test.txt');
q(1:4,7:12)
q(6,7:12)
q(8:14,7:12)
q1=[q(1:4,7:12);q(6,7:12);q(8:14,7:12)]
x=[q(:,1:6);q1;]
y=[x(:,2)];
x1=[x(:,3)];
x2=[x(:,4)];
x3=[x(:,5)];
x4=[x(:,6)];
X=[ones(n,1),x1,x2,x3,x4]
[b,bint,r,rint,s]=regress(y,X);
s2=sum(r.^2)/(n-m-1);
b,bint,s,s2
rcoplot(r,rint)

运行结果:

 综上可得,可以通过多元回归分析,用四种微量元素来较好地预测血红蛋白。

(注:以上仅为解析,并不是评分标准)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值