apple0905016 发表于 2011-5-2 17:00

请dingd主任帮我运行一个1stOpt程序

主任您好,看介绍找到您的,呵呵。我的软件运行不了编程,想请你帮我运行编程模式,对比非编程模式运行的结果是否相同可用。
Parameters a,b,c,d;
Variable x1,x2,y1,y2;
Function y1=a+b*(x1+x2)^c+d*ln(x1+x2);
         y2=a+b*(x1*x2)^c;
Data;
1 1 8.3863 5
1 2 11.1792 7
2 2 13.7726 11
3 1 13.7726 9
4 1 16.2189 11
2 3 16.2189 15
0 5 16.2189 3
0 1 5 3
0 2 8.3863 3
0 3 11.1792 3
0 4 13.7726 3;
共享参数的是这样:
Parameters a,b,c,d;
Variable x1,x2,y1,y2;
SharedModel;
Function y1=a+b*(x1+x2)^c+d*ln(x1+x2);
         y2=a+b*(x1*x2)^c;
Data;
编程模式是这样:
Parameters a,b,c,d;                                                   
Variable x1,x2,y1,y2;
StartProgram;
var i:integer;
benin
   for i:=0 to DataLength -1 do benin
      y1:=a+b*(x1+x2)^c+d*ln(x1+x2);
      y2=a+b*(x1*x2)^c;
   end;
end;
EndProgram;
Data;

我的版本只能计算第一个模式的,但是第一个的结果我有些怀疑,不知道这个所谓的共享模式是不是这两个方程的各个二次最小平方的和的加和。如果不同的话,我可能就需要其他方式计算或者。听说你的版本可以运行编程模式,麻烦帮我运行看看结果,是否编程模式和第一种模式的结果相同,如果不同的话希望得到数据和截图,分析差别,非常非常感谢!

dingd 发表于 2011-5-2 21:00

第一种模式是分别对两个公式进行单独拟合,而共享模式与编程模式一样,目标函数是两个方程的各个二次最小平方和相加,与第一种模式是不一样的。

apple0905016 发表于 2011-5-3 09:43

哦,我说呢,我尝试貌似是这样的,看来需要换模式了,非常感谢主任

lipeng-hm 发表于 2015-11-4 14:52

Parameters a,b,c,d;                                                   
Variable x1,x2,y1,y2;
StartProgram;
var i:integer;
begin
   for i:=0 to DataLength -1 do begin
      y1:=a+b*(x1+x2)^c+d*ln(x1+x2);
      y2=a+b*(x1*x2)^c;
   end;
end;
EndProgram;
Data;
页: [1]
查看完整版本: 请dingd主任帮我运行一个1stOpt程序