24小时热门版块排行榜    

查看: 3039  |  回复: 31
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

businiao412

金虫 (正式写手)

[求助] 请教一个非线性方程非线性项转化为多项式的方法 已有2人参与

RT,楼主近日做振动问题时遇到一个二阶非线性微分方程如图片1,看文献中其有如下解法:在运用摄动法之前,先将其中的非线性项(1-q)3/2运用三阶最小二乘拟合的方法在区间1-Q<q<1上进行展开如图片2,及图片3,请问这是怎么做到的呢?我查了很多资料就是找不到这个方法的出处,本人数学知识较为薄弱,望不吝赐教。
图片1-3如下图所示:
请教一个非线性方程非线性项转化为多项式的方法
方程1.png


请教一个非线性方程非线性项转化为多项式的方法-1
2.png


请教一个非线性方程非线性项转化为多项式的方法-2
3.png

[ Last edited by businiao412 on 2014-8-10 at 15:16 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

你自己写一个最小二乘的程序来做,应该也不难。
21楼2014-08-14 14:31:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

又用待定系数法a=inv(X)*y’做了几组不同取点的结果,发现误差不是由matlab的逆矩阵算法误差造成的!这里我犯了一个严重且低级的数学错误!这里不能用待定系数法做!高次多项式的曲线无法用这个方法拟合,不同的取点会导致得到的多项式系数完全不同。看来最小二乘法等拟合方法才是正途!
22楼2014-08-14 15:09:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

引用回帖:
23楼: Originally posted by businiao412 at 2014-08-14 15:11:56
我昨天晚上也用您说的方法测试了,发现选用不同的X值组成的四个点,得出的四个系数确实有差别的,不过没有仔细整理,我再看看,另外如果取多于五点时,显示五个方程四个未知数求解不出结果,您知道maple软件可以做 ...

可以的,“Maple为我们提供了11个不同的命令实现最小二乘拟合计算”
24楼2014-08-14 15:16:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

引用回帖:
25楼: Originally posted by businiao412 at 2014-08-14 16:00:47
其实我觉得,咱们用最小二乘法拟合的过程中,咱们选的点位置不同,数目不同得到的结果也会有有些差别吧?...

应该是,但是数目应该影响最大。
26楼2014-08-14 16:03:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

引用回帖:
27楼: Originally posted by businiao412 at 2014-08-14 16:39:14
所以我觉的即使使用最小二乘拟合,也很难得到文章中的结果。...

但论文中写的是用最小二乘得到的。
28楼2014-08-14 18:21:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

我用最小二乘法做了一下:
syms Q
x=[1-Q:0.001*Q:1];
y=-(1.-x).^(3/2);
N=length(x);
syms A
for n=1:N
       for m=1:4
           A(m,n)=x(n)^(m-1);
       end
end
a=(A*A')\(A*y');
其中a(1)=a0;  a(2)=a1; a(3)=a2; a(4)=a3;然后得到很长很长很长一串a关于Q的表达式,人工化简基本不可能了.............然后用eval函数化简最简单的 a3 项,得
eval(a(4))=-1230776300378990335736947704895/5070602400912917605986812821504/conj(Q)^3*conj(Q^(3/2))= -0.2427/Q^(3/2)= -8/(33*Q^(3/2))
但是其它几项太复杂了,化简不动.........
29楼2014-08-14 19:03:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

把取点密度减小:x=[1-Q:0.1*Q:1]; 可得:
eval(a(4))=-23980501898594795/90564573756653568/conj(Q)^3*conj(Q^(3/2))
             =-0.2648/Q^(3/2);
eval(a(3))=-1/1716*conj(Q^(3/2))*(-2997562737324347/2199023255552-12000*conj(Q)-500*conj(Q)*2^(1/2)+3008*conj(Q)*5^(1/2)+1116*conj(Q)*10^(1/2)+721*conj(Q)*7^(1/2)*10^(1/2)-704*conj(Q)*2^(1/2)*5^(1/2)-381*conj(Q)*3^(1/2)*10^(1/2)+624*conj(Q)*3^(1/2)*5^(1/2))/conj(Q)^3
             =-(1.6841e+003*Q-1.3631e+003)/(1716*Q^(3/2))
             =-(0.9814*Q-0.7943)/Q^(3/2) ≈ -(72*Q-56)/(77*Q^(3/2))

后面实在整不动了,说明最小二乘可定是可行的,但是这个论文作者采用何等手段获得如此整齐精准的表达式呢?
30楼2014-08-14 19:28:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

引用回帖:
31楼: Originally posted by businiao412 at 2014-08-14 21:12:26
太感谢您了,看来这个应该是用最小二乘得到的,不知道作者是采用怎么得到的这么整齐的表达式,这篇文章中关于这一部分的全部内容就是我给的,没有做别的解释。
对您的解答我十分感谢十分感动,也跟您学到了不少东 ...

没事,我水平也有限,都是一步一步走过来的。本身这个我也有兴趣,通过讨论,对我自身也是提高。
32楼2014-08-14 22:34:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 businiao412 的主题更新
信息提示
请填处理意见