声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2873|回复: 5

[1stopt] 菜鸟1stopt代码求助

[复制链接]
发表于 2009-5-14 23:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
刚接触该软件,很多地方都不明白,按照手册上介绍,编写了如下代码,但是没有运行结果,也没提示错误
麻烦高手帮忙解决下,谢谢了
Title "Torfactor2";
Parameters a,b,c,d,e,f;
Constant L=44;
Constant n=17;
Variable X, Y, Z;
DataSet;
X,Y,Z=
0.95286646053 7.31174393 45.90818274
1.0675890636 7.74423607 44.88095647
1.2070326551 8.708188311 56.666422786
1.2891664894 9.45328306 69.870900159
1.371300061 10.309441311 72.423575922
1.5246342784 11.00918745 77.923426956
1.7982441944 12.63134323 87.625605046
2.0530550486 14.22717859 96.124313224
2.4533315015 17.82962177 115.26023012
2.6266643202 18.226344191 119.23084942
2.856667018 19.9127711 132.53090467
3.0838023283 21.3538607 136.76386882
3.6142052724 24.92344013 161.35438276
3.987415716 27.120747051 176.52416388
4.8679566752 33.00078812 220.1193594
5.9622115035 40.50833169 283.81985361
6.9308234511 45.90868196 335.91465167
EndDataSet;
MinFunction  Sum(i=1:n)(-Y+(L*a+b)*X+c)^2+
          Sum(i=1:n)(-Z+(2*L*c+d)*X+e*X^2+f*a^2*X^3+2*b^2)^2;

回复
分享到:

使用道具 举报

发表于 2009-5-15 10:49 | 显示全部楼层

回复 楼主 sophio 的帖子

我一运行,就出错了呀!
??? Error: File: Untitled2.m Line: 6 Column: 7
Expression or statement is incomplete or incorrect.
 楼主| 发表于 2009-5-15 12:12 | 显示全部楼层
那是因为公式里的X,Y,Z后面都有方括号i的,我一复制就变成斜体字,显示不出来了
发表于 2009-5-15 14:00 | 显示全部楼层
改动如下试试,3.0运行是没问题的,以前的版本不敢保证。

Title "Torfactor2";
Parameters a,b,c,d,e,f;
Constant L=44;
Constant n=17;
DataSet;
X,Y,Z=
0.95286646053 7.31174393 45.90818274
1.0675890636 7.74423607 44.88095647
1.2070326551 8.708188311 56.666422786
1.2891664894 9.45328306 69.870900159
1.371300061 10.309441311 72.423575922
1.5246342784 11.00918745 77.923426956
1.7982441944 12.63134323 87.625605046
2.0530550486 14.22717859 96.124313224
2.4533315015 17.82962177 115.26023012
2.6266643202 18.226344191 119.23084942
2.856667018 19.9127711 132.53090467
3.0838023283 21.3538607 136.76386882
3.6142052724 24.92344013 161.35438276
3.987415716 27.120747051 176.52416388
4.8679566752 33.00078812 220.1193594
5.9622115035 40.50833169 283.81985361
6.9308234511 45.90868196 335.91465167
EndDataSet;
MinFunction  Sum(x,y,z)((-Y+(L*a+b)*X+c)^2)+
          Sum(x,y,z)((-Z+(2*L*c+d)*X+e*X^2+f*a^2*X^3+2*b^2)^2);
 楼主| 发表于 2009-5-16 14:43 | 显示全部楼层
非常谢谢楼上的答复,可能不是3.0的原因,还是没反应呢,我去下载个3.0再试试看
 楼主| 发表于 2009-5-17 09:51 | 显示全部楼层
3.0的似乎没有可以下载的。。我的是1.5版本的
这个例子里,有三个变量,我之前用matlab尝试过用lsqnonlin函数拟合,matlab也不太会呢,似乎运行不对的
function F=Torfac(d,Data)
d=1:6;
L=44; %cm
Data=[0.95286646053 7.31174393 45.90818274
1.0675890636 7.74423607 44.88095647
1.2070326551 8.708188311 56.666422786
1.2891664894 9.45328306 69.870900159
1.371300061 10.309441311 72.423575922
1.5246342784 11.00918745 77.923426956
1.7982441944 12.63134323 87.625605046
2.0530550486 14.22717859 96.124313224
2.4533315015 17.82962177 115.26023012
2.6266643202 18.226344191 119.23084942
2.856667018 19.9127711 132.53090467
3.0838023283 21.3538607 136.76386882
3.6142052724 24.92344013 161.35438276
3.987415716 27.120747051 176.52416388
4.8679566752 33.00078812 220.1193594
5.9622115035 40.50833169 283.81985361
6.9308234511 45.90868196 335.91465167];
xdata=Data(:,1);ydata=Data(:,2);zdata=Data(:,3);
d0=[1,1,1,1,1,1];
for i=1:length(xdata)
    M(i)=((-ydata(i)+(L*d(1)+d(2))*xdata(i)+d(3))^2)+((-zdata(i)+(2*L*d(3)+d(4))*xdata(i)+d(5)*xdata(i)^2+d(6)*d(1)^2*xdata(i)^3+2*d(2)^2)^2);
    i=i+1;
end
F=sum(M);
options=optimset('LargeScale','off');
options=optimset(options,'MaxFunEvals',300);
options=optimset(options,'LevenbergMarquardt','off');
options=optimset(options,'LineSearch','cubicpoly');
d=lsqnonlin('Torfac',d0,[],[],options,Data);

[ 本帖最后由 sophio 于 2009-5-17 11:01 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-27 21:54 , Processed in 0.065214 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表