24小时热门版块排行榜    

查看: 3008  |  回复: 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

铁杆木虫 (正式写手)

引用回帖:
12楼: Originally posted by businiao412 at 2014-08-13 22:45:37
syms Q
x=;
y=;
P=polyfit(x,y,3)我用这样的表达式,但是一直出错,如下信息:
Error using ==> ones
Trailing string input must be a valid numeric class name.

Error in ==> polyfit at 63
V(: ...

那是因为matlab的ones函数中不支持符号运算,合法的数据类包括: 'double', 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', 'uint32', 'int64', or 'uint64',不包括符号类:sym(详见关于ones函数的help文件)。matlab的符号运算功能还是比较弱,你可以试试用maple。

由于我没装maple,我直接用具体数值替你做了几组验证,证明我说的基本是正确的:
(1)令Q=1,则x=[0,0.1,0.2,......,0.9,1],对应的y=-(1.-x).^(3/2)=[-1,-0.853814968245462,-0.715541752799933,....,0],p=polyfit(x,y,3)=-0.264788988716828  -0.187032536397084   1.452896005112752  -0.998323698149733,根据论文知:
a3=-8/(33*Q^(3/2))=-0.242424242424242;
a2=-(72*Q-56)/(77*Q^(3/2))=-0.207792207792208;
a1=(24*Q^2+144*Q-56)/(77*Q^(3/2))=1.454545454545455;
a0=(8*Q^3-360*Q^2-1080*Q+280)/(1155*Q^(3/2))=-0.997402597402597;

(2)令Q=0.5,则x=[0.5,0.55,0.6,......,1],对应的y=-(1.-x).^(3/2)=[-0.3535,-0.3018,-0.2529,......,-0.0111,0],p=polyfit(x,y,3)=-0.748936358020765   0.858900587453328   0.730154298636324  -0.839145979819353,则
a3=-8/(33*Q^(3/2))=-0.685679302968773;
a2=-(72*Q-56)/(77*Q^(3/2))=0.734656396037972;
a1=(24*Q^2+144*Q-56)/(77*Q^(3/2))=0.808122035641769;
a0=(8*Q^3-360*Q^2-1080*Q+280)/(1155*Q^(3/2))=-0.854650274057507;

结论:可见在区间[1-Q,1]内取点进行拟合得到的多项式系数a3,a2,a1,a0的值与利用论文中a3,a2,a1,a0公式得到的数值是能够对上的。中间有些误差,主要原因一是取点的疏密对拟合精度有影响;二是论文中得到的表达式也是近似的。
13楼2014-08-14 01:43:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 32 个回答

herowolf

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
(1+x)ⁿ = 1 + n·x/1! + n(n-1)x2/2!  + n(n-1)(n-2)x3/3! + . . . + n(n-1)...(n-k+1)xⁿ/n! + . .

是不是这样做的? -x -> x  ,  n ->3/2

third order 只去前三项。
2楼2014-08-10 16:53:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guojiashun

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
businiao412: 金币+15, ★★★★★最佳答案, 衷心感谢您细致透彻的讲解,有种豁然开朗的感觉,我按照您的思路试做一下,有问题再向您请教。 2014-08-11 14:57:17
对你的问题理解不是十分准确。仅仅就我的理解说一下:
      摄动法的基本思想是把响应q看做多个不同量级的摄动的叠加,即:q(t,ε )=u0(t)+ε*u1(t)+ε ^2*u2(t)+......【1】(多尺度法还要把考虑不同的时间尺度,q(t,ε)=u0(t1,t2,...)+ε*u1(t1,t2,...)+ε ^2*u2(t1,t2,...)+.....),然后把q的近似表达式【1】代入原方程,通过整理和推导,根据方程两边 小参数 ε 的同次幂系数相等的条件,把原方程转化为分别关于u0、u1、u2.....的微分方程,然后分别逐次求得各摄动u0、u1、u2........最后,叠加可得方程q的近似解析解。
      这个非线性微分方程的非线性项是(1-q)^3/2,而在运用摄动法把式【1】代入原方程中进行整理时,由于(1-q)^3/2这一项带有分数次幂,故【1】代入后其展开是非常困难的,即使展开其中也带有 ε 的分数次幂项,也就无法利用 ε 的同次幂系数相等的条件来求解(后面的套路步骤走不下去了)。所以,一般在求解此类非线性微分方程时,用多项式来近似表达诸如(1-q)^3/2这种难于处理的项,这样当式【1】代入后展开、整理就变得很简便了。类似的情况如齿轮动力学理论中,一个主要的非线性因素是齿侧间隙,间隙作用方式用分段函数来表达,而分段函数的存在也给摄动法、多尺度法等的运用带来困难,数学上难于展开处理,故也有学者用多项式来近似这个分段函数(当然还有其它处理方法,这个还要视造成困难的项的具体函数性质)。
      这里提前预估了一个拟合区间q∈[1-Q, 1],Why?第一,方程首先要有稳态解;第二,也是为了数学处理上的便利性。(1)根据(1-q)^3/2可知,q必须小于等于1,否则出现复数项,方程无稳态解,故已知q的上限;(2)采用多项式来拟合(1-q)^3/2,取多少阶合适?我们当然是希望阶数越低越好。阶数越高,式【1】代入后的数学展开越复杂繁琐。根据数学知识易知拟合区间越小,就可以用越低的阶数来获得足够的拟合精度,所以根据已知条件提前划定一个尽量小的区间十分有益和必要。接下来要确定q的下限,其中Q是q所能预期到的最大的峰值(上限)和谷值(下限)之间的差值(peak-to-peak value,我想这里的Q可以通过数值求解、实验或者实际观测得到),那么已知q的上限是1,下限自然就是1-Q了。
      最后,文中确定用三次多项式来拟合,接着就要确定多项式的系数a0、a1、a2、a3。这里采用“最小二乘法”来确定,最小二乘法是一种数值方法,必须基于已知的数据进行拟合。上面已经得到了拟合区间q∈[1-Q, 1],那么在这个区间内取一些点,如1-Q, 1-9*Q/10, 1-8*Q/10, 1-7*Q/10, ......, 1,依次代入(1-q)^3/2中,可得相应值Q^3/2, (9*Q/10)^3/2, (8*Q/10)^3/2, (7*Q/10)^3/2, ......, 0,已知了函数(1-q)^3/2的一组自变量和因变量,套用“最小二乘法”的套路解得多项式的系数a0、a1、a2、a3也就不难了吧?
      总结,不论是摄动法,还是多项式拟合,都是无限逼近思想的体现。摄动法本身得到的就是方程的无限近似解,因此用多项式无限近似方程中复杂项也就变得无可厚非了。

PS:周日下午无事,多敲了些废话,纯属个人见解,限于水平,有误之处请各位指正。
3楼2014-08-10 19:43:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

businiao412

金虫 (正式写手)

引用回帖:
3楼: Originally posted by guojiashun at 2014-08-10 19:43:10
对你的问题理解不是十分准确。仅仅就我的理解说一下:
      摄动法的基本思想是把响应q看做多个不同量级的摄动的叠加,即:q(t,ε )=u0(t)+ε*u1(t)+ε ^2*u2(t)+......【1】(多尺度法还要把考虑不同的时间尺度, ...

十分感谢您细致的解答,对于数学小白的我还有很长的路要走,希望以后不吝赐教。
4楼2014-08-11 14:59:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见