1. 程式人生 > >小球沿不同軌跡運動時水平方向速度的比較

小球沿不同軌跡運動時水平方向速度的比較

探討一個問題

這兩天網路流行如圖的一個演示問題:

這裡寫圖片描述

有點像伽利略匹薩斜塔試驗,打破了一些常識:走曲線的小球反而速度更快,奇怪也哉。

粗略的數值模擬

問題的分析用到的都是簡單物理原理,只是計算繁瑣一些,但是也沒有最速下降曲線那麼高階,只是引入了積分計算,還不至於引出變分法這樣高階的東西。

我對動圖中的兩條路徑做了簡化,一條平直線,一條直接取餘弦曲線了。只是兩個小球在初始位置,給予相同的初始動能

這裡寫圖片描述

粗略的數值模擬表明,初始速度較小的時候,紅色小球可以先於藍色小球到達終點,但是,如果初始動能較大,則藍色的會反超。

這裡寫圖片描述

也就是說,在這個簡化了的數值模型中,走曲線的小球比走直線小球快的情形,對小球的初始動能是有要求的,初始動能有一個“臨界值”。

這個臨界值取決於曲線的方程,即使在本例中為了簡化分析,我用了曲線方程非常簡單的餘弦曲線,此時要想解析求解小球運動軌跡和時間的嚴格對應關係也很困難(估計是不可能),所以,數值模擬計算數值積分是比較合適的。

特別提示:到這裡,問題並沒有結束!為了得到關於原始問題的準確的結論,還必須往下看。

再深入一點探討

上面的兩個動態圖沒有考慮實際上走曲線的小球在何種初速度的情況下才能夠一直貼著曲線路面走的這一可能性的邊界。所以,分析的結果是粗糙的。而且,為了研究方便,假設與初速度無關,小球總能貼曲線路面走。這個假設不一定合理。

如果小球總能貼著餘弦曲線走,水平方向的初速度最大是多少? 也就是,小球在無干擾的情況下平拋,其路徑是一條拋物線。拋物線在初始點處的曲率半徑必須小於餘弦曲線的曲率半徑,小球才可能一直沿著曲線路面走。

下面演示的是v0從 1 增加到 5 的過程中,藍色的拋物線跟紅色的餘弦曲線之間的位置關係對比。容易發現,隨著水平方向初速度增加,拋物線曲率半徑越來越大,小球可能一出發就跳出去、而不是貼著紅色的曲線走:

這裡寫圖片描述

根據曲率半徑在 x=0 處拋物線和餘弦曲線相等,得到這個速度最大值是 vmax=103.16 (簡化起見,我取重力加速度為10)。

上面第一幅圖我設定初速度 v0=5, 第二幅 v0=12, 由此可見,只要小球所走的曲線是 1+cosx ,則走曲線的小球總能比走水平直線的快(這個結論還跟量綱有關,這裡就不進一步討論了,這裡預設取了SI制,所以所有量都沒有用單位)。——因為初始水平方向的速度大於 v

max=103.16 小球會跳起來脫離曲線的路面,而不是一直貼著曲線的路徑走。

跳起來的路徑會是怎樣的?乒乓球跟鐵球肯定不同,答案不唯一了。

為了避免這樣的探討,可以把路徑做成鋼絲,小球上面中心穿孔,這樣就簡單了。從而,自由的走曲線路面的小球實際上跟被嚴格約束在特定曲線軌道上的小球,本質上是完全不同的兩個問題也就是,前面的對問題的簡化和數值模擬,並不能反映原來的演示試驗的真實情形。由於簡化以至一個關鍵的約束條件發生了變化。

也就是,前面兩幅模擬動畫裡的紅色小球,實際上應該這麼畫:

這裡寫圖片描述

定性結論

因為曲線不確定,只有定性才普適,所以,定性結論一下。假設曲線路面總是先下坡、再上坡,而且曲線的最高點不高於出發的水平位置(看似無關,實際上這些也對定性結論至關重要)。

如果對初始的速度不作考慮,則自由的走曲線路面的小球實際上跟被嚴格約束在特定曲線軌道上的小球,它們對應的問題,本質上是完全不同的兩類問題。也就是,前面的數值模擬,分析的是跟原始問題並不相同的另一類問題。

——自由的走曲線路面的小球,因為加速過程先於減速過程,加速過程中總有一個沿著曲線法線方向的支撐力,它和重力的合力總產生水平方向的對小球加速的力,導致其到達目的點總比水平路面上的快:只要速度增加的過程中、作用在小球上的重力和曲線路面對小球的支撐力在小球運動朝向相同的水平方向上有一個大於0的分量,平均是水平方向的速度就總是大於初始速度的,這就總產生曲線路面更快的效果。

——固定曲線軌道的問題之所以可能產生走曲線的小球在初速度足夠大時反而慢,是因為重力和支撐力的合力,在小球總速度增加的運動過程中,反而產生沿曲線法線方向斜向下的反向支撐力,這能使它跟重力的合力在水平方向的分力跟小球水平運動的方向相反、從而能使得小球的水平分速度平均低於初始水平速度。所以,小球在這種情形不能太快。——有一個彌補可能讓人寬慰:在固定的約束在特定曲線軌道上的小球,如果水平方向綜合表觀速度比初速度恆定的小球慢,那麼它在垂直方向上下落到底部應該比自由落體還快!這是能量守恆決定的。

只有當初始的水平方向的速度低於一個臨界值,——此時,拋物線總在路徑曲線下,出發點的曲率半徑大於拋物線的曲率半徑——曲線連續光滑、沒有更大的坡度,此時兩類問題才一致。——而原始問題在實際操作中,只是初始速度遠低於曲率臨界值的情形,可以用前面的數值方法分析,但是初始速度 v0 更低,所以,無其它能量損耗的理想情況下,不存在水平運動的小球追上曲線運動小球的可能性。

對全程的即時速度(即隨時間而變化的、是時間的函式的瞬時速度)在時間上做一個積分,才是數值模擬的時候需要比較的核心問題,才反映到底哪個更快這個答案的本質。

算了半天,發現得到的結論很蒼白,有點做了無用功的感覺。有些問題還是需要定量計算的幫助才能理解更深入透徹的。

其它

我把計算中涉及的一些公式和存在的問題放在另外一篇裡面了,不全面,也不完整,以後有時間慢慢改吧。

此外,為了修改原始的gif檔案,去掉開頭操作者從椅子上站起來的無用的細節,同時給初始幀足夠的停留時間以達到理想顯示效果,以及對曲率對比圖作簡單處理,gifsicle的操作是不可避免的:
這裡寫圖片描述

相關推薦

小球沿不同軌跡運動水平方向速度比較

探討一個問題 這兩天網路流行如圖的一個演示問題: 有點像伽利略匹薩斜塔試驗,打破了一些常識:走曲線的小球反而速度更快,奇怪也哉。 粗略的數值模擬 問題的分析用到的都是簡單物理原理,只是計算繁瑣一些,但是也沒有最速下降曲線那麼高階,只是引入了積分計

Unity3d 簡單的小球沿貝塞爾曲線運動(適合場景漫遊使用)

轉載收藏:https://www.cnblogs.com/yanghui0702/p/yanghui20171122.html 簡單的小球沿貝塞爾曲線運動,適合場景漫遊使用 貝塞爾曲線:(貝塞爾曲線的基本想法部分摘自http://blog.csdn.net/u010019717/art

Python-OpenCV 處理視訊(三)(四)(五): 標記運動軌跡 運動檢測 運動方向判斷

0x00. 光流 光流是進行視訊中運動物件軌跡標記的一種很常用的方法,在OpenCV中實現光流也很容易。 CalcOpticalFlowPyrLK 函式計算一個稀疏特徵集的光流,使用金字塔中的迭代 Lucas-Kanade 方法。 簡單的實現流程: 載入一段視訊。

使用Unity畫一條平滑曲線(貝塞爾曲線)並使小球沿曲線運動

這裡直接講解在U3D中的實現方式 直接拿三階貝塞爾曲線為例,首先觀察下圖: 從圖中可以看出,只有四個點是保持不變的,分別是P0,P1,P2,P3,這四個點兩兩相連得到三個線段 (1)在上四點構成的三個線段中,p0-p1上有到一個點,p1

JavaScript與元素間的拋物線軌跡運動

拋物線 bsp 聯系 軌跡 com word zha zhang www 轉載自別人,如有侵權,請聯系本人。 http://www.zhangxinxu.com/wordpress/2013/12/javascript-js-%E5%85%83%E7%B4%A

【html+css】ul中li水平居中,可以根據media查詢,不同個數的li水平居中

通過給ul設定寬度width,來控制頁面顯示幾個li,你是水平居中顯示的,具體的間距通過li的margin來設定: <div class="navContent" id="newGoods"> <ul> <li>

禁止uiscrollview垂直方向滾動,只允許水平方向滾動;或只允許垂直方向滾動

禁止UIScrollView垂直方向滾動,只允許水平方向滾動 scrollview.contentSize =  CGSizeMake(你要的長度, 0);  禁止UIScrollView水平方向滾動,只允許垂直方向滾動 scrollview.contentSize

建立不同型別物件,建構函式和解構函式的呼叫順序

標頭檔案 #ifndef CONS_DES_H #define CONS_DES_H #include<iostream> class base { public: base(int); ~base(); private: int data; }; #endif

每天一點點之css - 動畫-一個圓繞著另一個圓動(繞著軌跡運動)

  最近要開發一個類似星河的效果,需要小圓繞著一定的軌跡運動,這個時候我首先想到的是使用canvas來實現,在實現過程中發現這個實現起來不是很靈活,然後想到css3有動畫也可以實現,下面是效果 注:圖2是多個的效果,沒有程式碼    html <div

MATLAB 中怎麼求影象在水平方向和垂直方向的畫素和,用圖表示

<span style="font-size:18px;"> I=imread('1.jpg'); %I=rgb2gray(I); [m n]=size(I); % 求垂直投影 for y=1:n S(y)=sum(I(1:m,y)); end y=

軌跡/運動規劃,最優控制 optimal control,trajectory optimization and planning

  機器人運動/軌跡規劃問題可定義一個最優控制/隨機最優控制問題。通過線性/非線性規劃求解器來求解軌跡規劃問題。 Some useful links: 1. Deep Reinforcement Learning and Control "Optimal Cont

解決ScrollView巢狀viewPager中巢狀listView滑動事件衝突問題(水平方向)

我們在開發中經常會碰到view滑動衝突的情況。滑動衝突的解決辦法就兩種:1.外部攔截法:是指在點選事件先經過父容器的攔截處理,如果父容器需要處理此事件就進行攔截,如果不需要此事件就不攔截,這樣就可以解決滑動衝突的問題,外部攔截法需要重寫父容器的onInterceptTouch

Unity 進行曲線軌跡自定義,以及根據自定義曲線軌跡運動

1. 當你需要相機鏡頭根據特定軌跡運動。或者一些AI的特定軌跡運動的時候。就可以用到下面的指令碼了 一下方法來自官方案例 直接程式碼嘍。你需要做的就是,複製到你的專案中。拖在指令碼上,你就知道他怎麼用了。 一共兩個指令碼,一個是自定義軌跡的,另一個是使物

百度地圖API使用第一彈------動態軌跡運動封裝

百度地圖API使用第一彈     ——動態軌跡運動封裝 你還在為冗雜的百度地圖API看著看著就想睡覺而犯愁嗎? 你還在不會使用百度地圖生成動態軌跡而犯愁嗎? 你還在為百度地圖預設的路線不符合自己的軌跡而犯愁嗎? 別愁了,向下看,–>

java畫圖板之三——用執行緒讓多個小球在介面自動運動

在介面上,除了可以實現點選,滑鼠移動等操作的監聽器,還有可以自動執行的執行緒 執行緒是指令執行的最小單位,而且多個執行緒是共用一個程序的記憶體的,也就是說我們在一個程式中可以開很多個執行緒,不過執行緒開多了當然佔用的記憶體就多 現在我們要實現的是,執行主程式

jquery 水平方向和垂直方向滑動隱藏和顯示 漸漸 隱藏和顯示

水平方向滑動隱藏 jQuery('#divFloatToolsView').animate({width: '300px', opacity: 'hide'}, 'normal',function(){ jQuery('#divFloatToolsView').hid

installEventFilter可以安裝到任何QObject的子類,並不僅僅是UI組件。事件過濾器和安裝過濾器的組件必須在同一線程,在它們分屬在不同線程,事件過濾器也是不起作用的

聲明 其它 -- crash t對象 對象傳遞 receiver 有效 每一個 Qt的事件知識點: ①事件對象創建完畢後,Qt 將這個事件對象傳遞給 QObject 的 event() 函數。event() 函數並不直接處理事件,而是將這些事件對象按照它們不同的類型,分發給

讓物體沿橢圓軌道運動

/// <summary> /// 利用橢圓方程的三角表達式:x=acosθ ,y=bsinθ做出橢圓運動 /// </summary> public class EllipticalOrbit : MonoBehaviour {         /

RDLC報表列印出現方向問題

【印表機紙張設定】 Z-Desinger 888 TT  預設設定的紙張格式是Portrait【報表紙張設定】RDLC紙張設定是橫向 【列印結果】  出現縱向多頁錯亂問題,方向和設定的不一樣,原因是本身印表機的問題,報表設定的方向沒有辦法修改,如果修改方西后寬度和高度會發生改

phpstudy不同版本切換遇到Mysql資料data直接copy需要注意的問題

最近由於電腦龜速,所以重灌系統,由於公司目前使用的是phpstudy整合環境,所以重灌新版本的phpstudy時遇到一些問題: 1.安裝後,WWW目錄下檔案除了phpMyadmin其它的web應用可以