MATLAB*2017/1/9

版权声明:沉迷代码,难以自拔 https://blog.csdn.net/qq_33846054/article/details/54292947

接下来的三周都会研读《MATLAB在数学建模中的应用》这本书,在此把敲过的课本习题代码,以及更详细的代码注释Po出。
插值与拟合
1)指定函数的拟合

x1=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 ...
    11.6 12.4 13.6 14.4 15];
x=x1.';
y1=[1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 ...
    0.28 0.15 -0.03 -0.15 -0.071 0.059...
    0.08 0.032 -0.015 -0.032];
y=y1.';
plot(x,y,'r*');
syms t %定义一个符号t
f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'} );
%f为用户自定义的函数,independent代表T为独立变量,AKW为系数。此函数的目的为清晰定义出何为未知数,何为普通参数。
cfun=fit(x,y,f);
%fit()函数为拟合函数,给出一组测量数据+自定义的拟合函数即可拟合成一条拟合曲线
xi=0:0.1:20;
yi=cfun(xi);
plot(x,y,'r*',xi,yi,'b-');




这里写图片描述

2)二维插值

[x,y]=meshgrid(1:10);%测量值构成的网络
h=[100个数据];
[xi,yi]=meshgrid(1:.1:10);%插值构成的网络
hi=interp2=(x,y,h,xi,yi,'spline');
%x,y,h+interp2内部隐藏的算法=插值之后的网络三维图
%xi,yi为一组插值的(x,y),返回其对应的Z值
surf(hi);
xlable('x'),ylable('y'),zlable('h');

线性规划与非线性规划和整数规划
1)p23 eg2.2

c=[2;3;1];
a=[1 4 2;3 2 0];
b=[8;6];
l=[0;0;0];%zeros(3,1)
[x,y]=linprog(c,-a,-b,[],[],l)

x =

    0.8066
    1.7900
    0.0166


y =

    7.0000

2)p23 eg2.3

c=[-5;-4;-6];
a=[1 -1 1;3 2 4;3 2 0];
b=[20;42;30];
l=[0;0;0];%zeros(3,1)
[x,y]=linprog(c,a,b,[],[],l)

x =

    0.0000
   15.0000
    3.0000


y =

  -78.0000

3)p24 eg2.4

c=[2;3;-5];
a=[2 -5 1];
b=-10;
l=[0;0;0];%zeros(3,1)
aeq=[1 1 1];%为何这是行向量
beq=7;
[x,y]=linprog(-c,-a,b,aeq,beq,l)




x =

    6.4286
    0.5714
    0.0000


y =

  -14.5714

4)p24 eg2.5

c=[170.858;-17.725;41.258;2.218;131.818;-500000];
a=[1 -0.17 -0.532 0 1 0;
    0 0.17 0.532 0 0 0;
    1 0.32 1 0 0 0;
    0 1 0 0 0 0;
    0 0 1 1 0 0;
    0 0 0 -1 -1 0];
b=[0;888115;166805;521265.625;683400;-660000];
aeq=[0 0 0 0 0 1];
beq=1;
l=zeros(6,1);
[x,y]=linprog(-c,a,b,aeq,beq,l)





x =

   1.0e+05 *

    0.0000
    1.7096
    1.1210
    5.7130
    0.8870
    0.0000


y =

  -1.4054e+07

猜你喜欢

转载自blog.csdn.net/qq_33846054/article/details/54292947