24小时热门版块排行榜    

查看: 1627  |  回复: 17

涡振怎么振?

金虫 (小有名气)

[求助] 求助关于非线性最小二乘法进行参数识别 已有1人参与

图1中是要求解的八元一次方程组,里面的有八个待解参数(就是小括号里出ti的八个参数,ti是时间),其他参数都是已知的(yi是位移时程,yi上一点是速度时程,D是高度,U是速度,减数fvi(ti)是力的时程),被减数是一个有八个待解参数的函数,函数形式如图2,本质就是想通过已知的位移时程、速度时程、力的时程来求得未知参数,从而拟合得到被减数这一函数。

如何通过已知的位移时程、速度时程、力的时程,求得这八个参数,进而拟合得到图2中的函数图像?

@月只蓝

求助关于非线性最小二乘法进行参数识别
图1.jpg


求助关于非线性最小二乘法进行参数识别-1
图2.jpg
回复此楼
云总会开,月终会明。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

其实也就是要对减数fvi(ti)这个力的时程曲线进行拟合,只是拟合的函数形式已经给定,就是图2中的公式,这个公式里除了八个待解参数,其他都是已知的。
云总会开,月终会明。
2楼2015-08-07 15:01:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

3楼2015-08-07 15:02:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

下面是数据,含有时间、位移时程、速度时程和力的时程。
U=9.1,D=0.175,密度rou为51.6.

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 数据.txt
  • 2015-08-07 15:32:37, 1.24 M
云总会开,月终会明。
4楼2015-08-07 15:34:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
ben_ladeng: 金币+1, 辛苦了 2015-08-11 08:16:14
就拟合而言,首先要判断方程形式是代数式还是常微分,然后再考虑方程是线性还是非线性。从图2来看,问题涉及的方程是非线性的常微分方程,其中最难解决的问题是y的导数y'本身又是隐式的。
隐式的常微分方程的拟合问题,我从未解决过,而且你的数据量达到三万多行,这个问题我难以解决。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2015-08-07 15:54:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

引用回帖:
5楼: Originally posted by 月只蓝 at 2015-08-07 15:54:00
就拟合而言,首先要判断方程形式是代数式还是常微分,然后再考虑方程是线性还是非线性。从图2来看,问题涉及的方程是非线性的常微分方程,其中最难解决的问题是y的导数y'本身又是隐式的。
隐式的常微分方程的拟合问 ...

这一个方程组是令误差函数为0,然后由误差函数中各个参数求偏导得到的。

y’是速度时程,是已知的。
求助关于非线性最小二乘法进行参数识别-2
误差函数.jpg

云总会开,月终会明。
6楼2015-08-07 16:06:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

引用回帖:
4楼: Originally posted by 涡振怎么振? at 2015-08-07 15:34:29
下面是数据,含有时间、位移时程、速度时程和力的时程。
U=9.1,D=0.175,密度rou为51.6.

密度写错了,是50.61
云总会开,月终会明。
7楼2015-08-07 16:10:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

也许用高版本的1stOpt软件可以拟合隐式的常微分方程,但我手头的版本有4的参数限制,你的问题涉及8个参数。如果有高版本1stopt这个也许能高效解决。

另外,MATLAB编程应该能做,我只能提供一点思路:一般显式的常微分方程拟合,用 ode45函数和 lsqnonlin函数联用可以求解,其中ode45是求解显式常微分方程的,MATLAB有提供求解隐式常微分方程的函数ode15i,因此你的问题用ode15i 函数和 lsqnonlin函数联用可以一试,不过关键还是你的数据量太大,程序代码解决之后,计算量又是一个问题。可以把按一定间距提取数据,比如每隔10个取一个点,这样数据量缩减为1/10。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
8楼2015-08-07 16:11:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涡振怎么振?

金虫 (小有名气)

引用回帖:
8楼: Originally posted by 月只蓝 at 2015-08-07 16:11:01
也许用高版本的1stOpt软件可以拟合隐式的常微分方程,但我手头的版本有4的参数限制,你的问题涉及8个参数。如果有高版本1stopt这个也许能高效解决。

另外,MATLAB编程应该能做,我只能提供一点思路:一般显式的常 ...

开始尝试用origin没有搞出来,matlab还在初学阶段。。。我先试试吧

谢谢!
云总会开,月终会明。
9楼2015-08-07 16:21:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
6楼: Originally posted by 涡振怎么振? at 2015-08-07 16:06:09
这一个方程组是令误差函数为0,然后由误差函数中各个参数求偏导得到的。

y’是速度时程,是已知的。

误差函数.jpg
...

y'是一个已知的数 还是在你给出的数据中 的一列数?
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
10楼2015-08-07 16:49:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 涡振怎么振? 的主题更新
信息提示
请填处理意见