24小时热门版块排行榜    

查看: 2861  |  回复: 8

瀚海行舟

新虫 (初入文坛)

[求助] 1stopt三维空间曲线拟合 已有1人参与

请教一下,已知三组数据,如何拟合出三维空间曲线,并得到他的参数方程,目前我用的1stopt,得到的是一个曲面,想问下到底如何能得到曲线拟合。如果有别的方法,如matlab,也请不吝赐教,谢谢!
0 2.125 414897.577994617
1.5915 2.165 455102.831620648
3.1831 2.215 525696.470359034
4.7746 2.325 591448.219202163
6.3662 2.475 648298.441256297
7.9577 2.705 697003.786876068
9.5493 3.015 737917.784853322
11.1408 3.45 772047.838155198
12.7324 4.14 800063.260857717
14.3239 5.265 822044.806251477
15.9155 7.25 838474.029280583
17.507 11.035 848481.557824979
19.0986 14.79 852087.532478039


Function: z = p1+p2*x+p3*x^2+p4*x^3+p5*x^4+p6*x^5+p7/y+p8/y^2+p9/y^3+p10/y^4+p11/y^5
Algorithms: 准牛顿法(BFGS) + 通用全局优化法
Root of Mean Square Error (RMSE): 101.518407556763
Sum of Square Error (SSE): 133977.831947195
Correlation Coef. (R): 0.999999763438562
R-Square: 0.99999952687718
Determination Coef. (DC): 0.999999523682752

Parameters Name        Parameter Value
===============        ===============
p1              126891.285393683
p2              12605.6079267492
p3              16813.6042796314
p4              -2990.12528858069
p5              190.825152062815
p6              -4.05893118643963
p7              1662713.16080946
p8              -1920920.79169137
p9              15965140.4020001
p10              -90888904.3994398
p11              118054087.577405

1stopt三维空间曲线拟合
1.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有2个 )

lipenggg

专家顾问 (正式写手)

瀚海行舟: 回帖置顶 2016-01-16 19:42:51
三维拟合不管是参数方程还是普通函数方程就是曲面,不可能是曲线。
一团和气
3楼2016-01-07 09:49:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瀚海行舟

新虫 (初入文坛)

瀚海行舟: 回帖置顶 2016-01-16 19:50:17
引用回帖:
3楼: Originally posted by lipenggg at 2016-01-07 09:49:24
三维拟合不管是参数方程还是普通函数方程就是曲面,不可能是曲线。

感谢你在QQ上的热心帮忙,把你的回答贴出来,方便大家以后参考
TiTle"三位函数参数方程拟合-编程";
Parameter a0,a1,a2,a3,b0,b1,b2,b3,c0,c1,c2,c3;
Variable t,x[output],y[output],z[output];
StartProgram;
var i: integer;
begin
    for i := 0 to DataLength - 1 do begin
         x:=a0+a1*t+a2*t^2+a3*t^3;
         y:=b0+b1*t+b2*t^2+b3*t^3;
         z:=c0+c1*t+c2*t^2+c3*t^3;
    end;
end;
EndProgram;

data;
1        0        2.125        414897.578
2        1.5915        2.165        455102.8316
3        3.1831        2.215        525696.4704
4        4.7746        2.325        591448.2192
5        6.3662        2.475        648298.4413
6        7.9577        2.705        697003.7869
7        9.5493        3.015        737917.7849
8        11.1408        3.45        772047.8382
9        12.7324        4.14        800063.2609
10        14.3239        5.265        822044.8063
11        15.9155        7.25        838474.0293
12        17.507        11.035        848481.5578
13        19.0986        14.79        852087.5325



迭代数: 16
计算用时(时:分:秒:微秒): 00:00:00:632
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判定标准
均方差(RMSE): 3465.37346903185
残差平方和(SSE): 468343717.914924
相关系数(R): 0.999981637656814
相关系数之平方(R^2): 0.999963275650804
决定系数(DC): 0.999963275650804
F统计(F-Statistic): 299517.793313736

参数                  最佳估算
--------------------        -------------
a0                 -1.59079509167053
a1                 1.59114273175162
a2                 5.58198121310261E-5
a3                 -2.21755578554155E-6
b0                 0.888656538960089
b1                 1.19767463959602
b2                 -0.279347661876009
b3                 0.0206738835030876
c0                 334648.005832586
c1                 70428.8906870194
c2                 -1334.11539353067
c3                 -80.0928008306951
7楼2016-01-16 19:49:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
不明白楼主想干什么?拟合计算是直接显示的就是拟合二维图,结果都有了那还来的问题:“想问下到底如何能得到曲线拟合”
2楼2016-01-07 09:38:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瀚海行舟

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2016-01-07 09:38:11
不明白楼主想干什么?拟合计算是直接显示的就是拟合二维图,结果都有了那还来的问题:“想问下到底如何能得到曲线拟合”

结果给的方程做出来的是一个曲面,我的本意是想得到空间曲线,我查资料时在matlab论坛,看见一个人提的同样的问题,下面回答中一个人给出了参数方程,画出的是空间曲线,所以我觉得是可行的
4楼2016-01-07 18:56:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瀚海行舟

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by lipenggg at 2016-01-07 09:49:24
三维拟合不管是参数方程还是普通函数方程就是曲面,不可能是曲线。

我查资料时在matlab论坛,看见一个人提的同样的问题,下面回答中一个人给出了参数方程,画出的是空间曲线,所以我觉得是可行的
1stopt三维空间曲线拟合-1
1stopt三维曲线拟合 – MATLAB中文论坛.png

5楼2016-01-07 18:58:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瀚海行舟

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by 瀚海行舟 at 2016-01-07 18:58:56
我查资料时在matlab论坛,看见一个人提的同样的问题,下面回答中一个人给出了参数方程,画出的是空间曲线,所以我觉得是可行的

1stopt三维曲线拟合 – MATLAB中文论坛.png
...

上传的网页图片看不了,可以看看这个网页,http://www.ilovematlab.cn/thread-340717-1-1.html
里面的一个回复给出了三维空间曲线和参数方程,可是没有给方法
6楼2016-01-07 19:01:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wellsalon

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by lipenggg at 2016-01-07 09:49:24
三维拟合不管是参数方程还是普通函数方程就是曲面,不可能是曲线。

@lipenggg,请问,为啥不可能是曲线呢?
z = p1+p2*x+p3*x^2+p4*x^3+p5*x^4+p6*x^5+p7/y+p8/y^2+p9/y^3+p10/y^4+p11/y^5
这不是个曲面方程吗?
8楼2016-10-09 09:01:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wellsalon

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by lipenggg at 2016-01-07 09:49:24
三维拟合不管是参数方程还是普通函数方程就是曲面,不可能是曲线。

@lipenggg,请问,为啥不可能是曲线呢?
z = p1+p2*x+p3*x^2+p4*x^3+p5*x^4+p6*x^5+p7/y+p8/y^2+p9/y^3+p10/y^4+p11/y^5
这不是个曲面方程吗?
9楼2016-10-09 09:23:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 瀚海行舟 的主题更新
信息提示
请填处理意见