数学建模公交乘务安排

谁来帮忙看看是哪里错了啊,符号全是英文输入的,但是lingo就是算不出来

img

img

img


(我也不知道用什么标签,借用一下)

家人们破案了,是我不知道按了什么把lingo变成了lindo,所以算不出来

可能要加上单个 x1,x2……的约束条件?

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/392048
  • 这篇博客也不错, 你可以看下矩阵奇异性和“病态”问题的解释与改善方法(简单易懂)
  • 除此之外, 这篇博客: 基于lingo的线性回归和非线性回归中的 2.2非线性回归 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •         针对此例我们假设非线性回归方程 y=ax+b\cdot logx+c 进行回归求解。和线性回归一样,我们采用目标规划,这次我们引入MSE评价指标。数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE是衡量"平均误差"的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。于是我们将MSE最小作为目标函数求解最小值得到系数最优解。

    目标函数:

    \large min=MSE

    约束条件:

    \large MSE=\frac{1}{N}\sum (\hat{y}-y)^{2}

    \large \hat{y}=ax+b\cdot logx+c

    lingo程序:

    model:
    sets:
    data/1..9/:x,y,y_fit;!创建x,y,x_fit的原数据和回归矩阵;
    endsets
    data:
    x=1.5,4.5,7.5,10.5,13.5,16.5,19.5,22.5,25.5;!读入x,y数据;
    y=7,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2;
    enddata
    min=MSE;!目标函数为MSE最小;
    MSE=@sum(data:(y_fit-y)^2)/@size(data);!计算MSE;
    @for(data:y_fit=a*x+b*@log(x)+c);!回归函数;
    @free(a);!释放a,b的取值范围;
    @free(b);
    end

    求解结果如下表:

    \large MSE0.003873966
    \large a0.08187599
    \large b-2.398902
    \large c7.893306


    由于lingo不方便做图,采用Rstudio做出回归曲线: