zoukankan      html  css  js  c++  java
  • MATLAB 机场价格数据预处理和分析

    出租车价格数据为浦东机场

    拟合机场价格变化曲线

    1. 最小二乘法
    2. 回归系数的判断(函数编写练习)
    3. 机场价格:白天和夜间加权

    数据预处理

    1. importdata函数的使用,data属性和textdata属性
    2. figure 和 hold on的使用

    运行结果:
    曲线通过拟合,相关系数为
    1.0000 0.8853
    0.8853 1.0000

    曲线通过拟合,相关系数为
    1.0000 0.9990
    0.9990 1.0000

    白天和夜间估计值:
    180.2105 229.5223
    187.0075 239.9225
    166.6165 208.7218
    166.6165 208.7218
    142.8271 172.3210
    170.0150 213.9219
    207.3985 271.1232
    187.0075 239.9225
    180.2105 229.5223
    173.4135 219.1220
    180.2105 229.5223
    173.4135 219.1220
    187.0075 239.9225
    149.6241 182.7212
    173.4135 219.1220
    187.0075 239.9225
    187.0075 239.9225
    220.9925 291.9237

    平均路程:47.611km
    白天费用(RMB/km):3.40RMB
    夜间费用(RMB/km):5.20RMB
    全天(RMB/km):3.85RMB
    全天183.25RMB

    %%数据预处理,绘制散点图
    fid=importdata('4.txt',',',1)
    disp(fid.textdata);disp(fid.data);
    A=fid.data;
    X=A(:,1);%机场里程数
    disp('机场里程:');disp(X)
    Y_1=A(:,2);%白天参考费用
    disp('白天费用:');disp(Y_1');
    Y_2=A(:,3);
    disp('夜间费用:');disp(Y_2');
    % ax1=subplot(1,2,1)
    figure
    h1=scatter(X,Y_1,'r');
    % ax2=subplot(1,2,2)
    hold on
    h2=scatter(X,Y_2,'b');
    hold on
    title('费用随路程变化');
    legend('白天','夜间')
    %% 画出拟合曲线
    clc;
    [y1,delta1]=polyfit(X,Y_1,1);
    judge(corrcoef(X,Y_1));
    y1_value=polyval(y1,X);
    plot(X,y1_value);
    hold on
    
    [y2,delta2]=polyfit(X,Y_2,1);
    judge(corrcoef(X,Y_2));
    y2_value=polyval(y2,X);
    disp('白天和夜间估计值:');disp([y1_value,y2_value]);
    plot(X,y2_value);
    legend('白天拟合曲线','夜间拟合曲线');
    
    %%机场到其他地方车费
    % clc;
    [row,line]=size(X);
    avg_km=sum(X)/row;fprintf('平均路程:%0.3fkm
    ',avg_km);
    avg_d=y1(1);fprintf('白天费用(RMB/km):%0.2fRMB
    ',avg_d);
    avg_s=y2(1);fprintf('夜间费用(RMB/km):%0.2fRMB
    ',avg_s);
    avg_p=([avg_d,avg_s]*[0.75 0.25]');
    fprintf('全天(RMB/km):%0.2fRMB
    ',avg_p);
    fprintf('全天%0.2fRMB
    ',avg_p*avg_km);
    %% 市区内
    
    function bool=judge(r)
    %判断相关系数
    if r>0.8
        bool=1;
        disp('曲线通过拟合,相关系数为');disp(r);
    else 
        bool=0;
        disp('曲线拟合效果不好,相关系数为');disp(r);
    end
    end
    
    
    追风少年
  • 相关阅读:
    python面试题目【转1】
    让python和C/C++联姻【转】
    python面试模拟真题讲解
    JavaScript真的要一统江湖了
    WebApp
    Linux服务器之SSH
    web服务之http
    SNMP简单网络管理协议
    Storm,Spark和Samza
    Stream computing
  • 原文地址:https://www.cnblogs.com/lzycodinglife/p/12586283.html
Copyright © 2011-2022 走看看