如何用哈密頓原理研究振動?
動力學方程是個二階微分方程,用特徵根,對角化解感覺很麻煩。而哈密頓原理不就是把拉格朗日方程變成兩個一階微分方程嗎?所以我想能不能把動力學方程也轉化成兩個一階方程這樣方程會不會好解些,然而卻不會做。有沒有大神會?最好舉個簡單例子
最近剛剛看完哈密頓方程的知識,嘗試著來回答一下......
對於線性系統,可以直接用拉格朗日方程列些系統的振動微分方程,然後用特徵值的方法就可以得到精確的解析解。
但是對於非線性系統,一般沒有辦法得到解析解。這個時候一般要引入相空間,研究系統在相空間中的行為。而通過哈密頓方程得到的振動微分方程,對在相空間中進行研究非常方便。
==============
舉個栗子
對於一個單擺(非線性),擺的集中質量為,長度為,廣義坐標取。
系統的動能:
系統的勢能:拉格朗日函數:使用拉格朗日第二類方程求得系統的振動微分方程為:
而在哈密頓系統中,變數不再是廣義坐標、廣義速度與時間,而是廣義坐標、廣義動量與時間
廣義動量:
哈密頓函數:,在這個例子裡面其實就是系統的機械能。使用哈密頓方程得到的振動微分方程為:
假設系統的機械能為,我們可以得到:
通過這個關係我們就可以很輕鬆的畫出系統的相圖了。m=1;l=1;g=9.8;
theta = linspace(0,4*pi,1000);
h=[0,0.01,0.1,0.2,0.5,0.8,1,4,8,12,15,19,20,22,25,30,35,40,50,70,100];
for i=1:length(h)
p1 = sqrt((h(i)+m*g*l*(cos(theta)-1))*2*m*l^2);
p2 = -sqrt((h(i)+m*g*l*(cos(theta)-1))*2*m*l^2);
plot(theta,p1,"b",theta,p2,"b")
hold on
end
代碼比較無腦不要在意_(:з」∠)_
對於簡單非線性系統,也可以直接把一個二階微分方程化成兩個一階微分方程組,也可以得到系統的相圖。但是我認為哈密頓方程相當於給了一個更加規範的方法來完成這一步。對於以後複雜非線性系統的分析上可能會更加簡便。這類似於使用牛頓第二定律也可以寫出系統微分方程,但是拉格朗日第二類方程讓分析變得更加簡單與規範。嗯,你需要相空間這個概念,以及學習一階線性微分方程組理論。
當然,這些然並亂,只能讓你收穫形式理論的美感。具體如何計算線性微分方程組,還是要計算特徵值,對角化這些東西。推薦閱讀:
※將物理與計算機結合可以做些什麼?
※自旋角動量與軌道角動量的物理意義?
※原子軌道的真實物理圖景是什麼?
※自然科學領域,什麼樣的研究才算是有「好品位」?
※溫度的變化是線性的嗎?