参考材料:
数学建模与数学实验(第4版)——赵静,但琦
数学建模课程课件
MATLAB程序设计
1.投入产出模型
问题假设:设有n个经济部门,xi为部门i的总产出,cij为部门j单位产品对部门i的消耗,di为外部对部门i的需求,fi为部门j新创造的价值。
投入产出模型:
(1)式为分配平衡方程
(2)式为消耗平衡方程
模型分析:
对于(1)式,令
则可以写出(1)的矩阵形式:x=Cx+d
令A=I-C,则得到Ax=d
这里,I是单位矩阵,C称为直接消耗矩阵,A称为Leontief矩阵。
对于(2)式,有
B表示各部门间投入产出关系,称为投入产出矩阵
y = [1,1,…,1]B(B各列的和),y表示各部门的总投入(消耗)
创造新价值 f = x - y’
例题分析:
题目:某地区有三个重要产业,一个煤矿,一个发电厂和一条地方铁路。开采一元钱的媒,煤矿要支付0.25元的电费及0.25元的运输费;生产一元钱的电,发电厂要支付0.65元的煤,0.05元的电费以及0.05元的运输费;创收一元钱的运输费,铁路要消耗0.55元的煤和0.10元的电。在某一周内煤矿接到外地50000元的订货,发电厂接到外地25000元的订单,外界对铁路没有需求。问三个企业一周内总产值多少才能满足自身及外界需求?三个企业各创造多少新价值?
解:这是一个投入产出分析问题,设x1为本周内煤矿总产值,x2为电厂总产值,x3为铁路总产值,则有:
产出向量:
外界需求量:
直接消耗矩阵:
则原方程为:(E-C)x=d
投入产出矩阵为 B=C*diag(x)
总投入向量 Y=ones(1,3)*B
新创造价值向量 F = X-Y’
根据投入产出模型得到公式,输入MATLAB程序中,可以得到结果。
MATLAB代码分析:
%根据已知条件写出直接消耗矩阵和外界需求向量
C = [0,0.65,0.55;0.25,0.05,0.10;0.25,0.05,0];
d = [50000,25000,0]';
% A = I - C ,其中,I为单位矩阵
A = eye(3) - C;
%由公式 Ax = d 反求解x
x=A\d;
B = C * diag(x);
%一周内总产值
Y = ones(1,3) * B
%各自创造多少新价值
F = x - Y'
MATLAB结果:
Y =
1.0e+04 *
5.1044 4.2122 1.8415
F =
1.0e+04 *
5.1044
1.4041
0.9916
2.小行星轨道问题
问题假设:某天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在两坐标轴上取天文测量单位为单位长度(一天文单位长度为地球到太阳的距离,即1.496*10^11m),他在五个不同的时间点对小行星做了观测,得到轨道上五个点的坐标数据(如下表)
x | 4.5596 | 5.0816 | 5.5546 | 5.9636 | 6.2756 |
---|---|---|---|---|---|
y | 0.8145 | 1.3686 | 1.9895 | 2.6925 | 3.5265 |
由开普勒第一定律知,小行星的轨道为椭圆,其方程可以表示为:
试确定该小行星的轨道方程,并在轨道平面内以太阳为原点绘制出该椭圆。
解:
设五个点的坐标为(xi,yi),其中i=1,2,…5,将各个点的坐标带入椭圆的一般方程,并建立矩阵。
MATLAB代码分析:
%建立坐标矩阵
x = [4.5596;5.0816;5.5546;5.9636;6.2756];
y = [0.8145;1.3686;1.9895;2.6925;3.5265];
%确定矩阵参数
c1 = x.^2; c2 = 2*x.*y; c3 = y.^2;
c4 = 2*x;c5 = 2*y;
A = [c1,c2,c3,c4,c5];
b = -ones(5,1);
%由矩阵求解
Pa = A\b
%建立符号变量x和y,并建立函数f
syms x y
f = Pa(1)*x^2+2*Pa(2)*x*y+Pa(3)*y^2+Pa(4)*x+2*Pa(5)*y+1
%绘制图形
ezplot(f,[-2,7,-2,7]);title('行星轨道');
MATLAB结果分析:
Pa =
-0.2841
0.1587
-0.3270
0.3658
0.3742
f =
(6589222963408527*x)/18014398509481984 + (6740857792942925*y)/9007199254740992 + (5719502867785325*x*y)/18014398509481984 - (5118690937872445*x^2)/18014398509481984 - (2944946026362949*y^2)/9007199254740992 + 1
个人体会:线性代数模型,是根据已知公式建立相应模型,使用向量或矩阵求解计算,得到所求结果,并进行进一步展示。