lwllwlnb 2024-11-08 16:35 采纳率: 86.7%
浏览 1
已结题

LINGO总是提示peremeters:错误,如何解决?(标签-AR|关键词-SET)

LINGO总是提示parameters:错误,求原因

SETS:
YEARS /1..5/: xA, xB, xC, xD;
ENDSETS

PARAMETERS:
InitialFund = 100000; 
InterestA = 1.15; 
InterestB = 1.25; 
InterestC = 1.40; 
InterestD = 1.06; 
MaxInvestB = 40000; 
MaxInvestC = 30000; 
ENDPARAMS


VARIABLES:
x1A, x2A, x3A, x4A;
x2C; 
x3B; 
x1D, x2D, x3D, x4D, x5D;  
Z;
ENDVARS

 
MAX = Z;

 
 
x1A + x1D = InitialFund;
 
-1.06 * x1D + x2A + x2C + x2D = 0;
 
-1.15 * x2A - 1.06 * x2D + x3A + x3B + x3D = 0;
 
-1.15 * x2A - 1.06 * x3D + x4A + x4D = 0;
 
-1.15 * x3A - 1.06 * x4D + x5D = 0;
 
x3B <= MaxInvestB;

x2C <= MaxInvestC;

 
Z = 1.15 * x4A + 1.40 * x2C + 1.25 * x3B + 1.06 * x5D;

 
@FOR(YEARS(i): @GIN(xA(i)));
@GIN(x2C);
@GIN(x3B);
@FOR(YEARS(i): @GIN(xD(i)));

 
SOLVE;
END

  • 写回答

1条回答 默认 最新

  • 越重天 新星创作者: Java技术领域 2024-11-08 21:57
    关注

    本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢

    1. 错误可能原因分析
      • 语法错误
        • 在LINGO中,PARAMETERS部分的定义可能存在语法问题。例如,InitialFund = 100000;这种定义方式可能不符合LINGO的语法要求。在LINGO中,参数的定义可能需要更严格的格式,可能应该是InitialFund: = 100000;(这里只是一种可能的修正格式,具体取决于LINGO版本等因素)。
      • 数据类型不匹配
        • 如果LINGO期望参数是某种特定的数据类型(例如整数类型,而你定义的看起来像是实数类型),就可能导致这个错误。虽然从代码片段中看起来这些参数像是实数,但如果在模型的其他部分有对这些参数类型的特殊要求(例如在约束或者目标函数中要求整数运算),就会出错。
      • 命名冲突
        • 检查是否存在命名冲突,例如xA等变量在SETS部分定义了,但是在后面的约束或者目标函数中使用方式可能与LINGO的命名规则冲突。例如,如果LINGO对集合元素的引用有特殊的语法要求,而这里没有遵循。
      • 版本相关问题
        • 不同版本的LINGO对语法的要求可能会有细微差别。如果你的代码在旧版本中可以运行,但是在新版本中提示parameters错误,可能是因为新版本对语法进行了调整。
    2. 修正建议
      • 检查语法格式
        • 按照LINGO的语法手册,重新检查PARAMETERS部分的定义。确保每个参数的定义都符合要求,例如使用正确的赋值符号(如果需要),并且参数的类型(如果有要求)是正确的。
      • 检查数据类型一致性
        • 仔细审查模型中对这些参数的使用,确保数据类型是一致的。如果需要将某些参数定义为整数类型,可以使用合适的函数或者语法来实现。例如,如果要将InitialFund定义为整数,可以考虑使用@GIN(InitialFund)(如果这是符合LINGO语法的方式,具体需要参考手册)。
      • 检查命名规则
        • 重新审视变量和集合的命名,确保没有违反LINGO的命名规则。对于集合元素的引用,要按照正确的语法进行。例如,如果要引用集合YEARS中的元素xA,可能需要使用正确的索引方式,如xA(1)等(假设这是正确的语法,具体取决于模型结构)。
      • 参考官方文档和示例
        • 查阅LINGO的官方文档,查找与PARAMETERS定义相关的示例。对比自己的代码和官方示例的差异,从而找到错误所在并进行修正。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月8日