0%

今年是2021,資芽的二階主題跟2020上的有很多的差別,因此會利用暑假把2020的東西也補一補!

課程內容

儲存

線段樹很多人都用陣列來實作,空間$O(n)$,在處理樹的左右節點也十分的方便。如果以1-base來儲存陣列這棵線段樹,左右節點可以用以下的index來表示。線段樹有一個優點就是它可以用儲存完滿二元樹的方式來儲存,雖然它不一定是完滿但會是平衡的一棵樹。左節點:$2n$,右節點$2n+1$。

閱讀全文 »

APCS Class題目第三部分!

M. [基礎資料結構 II 及基礎演算法 II ] 貪婪法

a071. 排隊買飲料

閱讀全文 »

APCS Class題目第二部分!

G. [基礎資料結構 I ] 堆疊、佇列

a119. 括號問題

閱讀全文 »

這是2021年暑期APCS課程的所有題目參考解答,共有34題。

A. [基礎程式設計] 基礎C++程式設計複習

a064/ 成績指標

閱讀全文 »

自主學習課程內容

這一學期的自主學習主要有三個重點:

  1. Solid work 電腦繪圖
  2. Ansys 有限元素分析模擬
  3. 基礎力學理論課程
  4. 自製MeArm機械手臂

原本規劃要分組做機械手臂,但因為疫情的關係導致計畫沒辦法實行
所以把原本做手臂的時間拿來做Ansys與Solid Work的教學

這一學期的力學課程主要是讓我們可以建立一些力學理論的觀念,在FRC機器人競賽中可以發揮理論上面的優勢,透過物理的觀念與公式計算並分析在製作機器人中遇到的問題,並根據理論給出合理的解決方式。

2021.3.10 三角函數與微積分入門

這個禮拜除了基礎的座標種類的複習,還學到一些三角函數的知識。雖然第一次接觸到,也感受到三角函數的困難,不過整體學起來還不錯

還有一個蠻吃力的主題是微積分,雖然只是基礎的分別介紹積分與微分的原理與相關應用,在上課的時候還是有聽沒有懂,回家再次複習後才較能理解微積分大致的概念

在寒假機器的Labview程式設計中有使用到PID控制,利用比例、積分、微分的三個變量讓機器可以精準的移動給定的距離。看到機器因為使用PID控制而前後小幅度的抖動,就可以見到在比例與積分這兩塊發揮的作用

上課筆記:

2021.3.17 靜力學

這一週的內容是靜力學,課程難度稍微較上週輕鬆
靜力平衡與轉動平衡是之前就學過的概念,不過再加上三角函數進去分析,整個難度就瞬間提高!
上課中提到的例題就要利用到三角函數將力分解,並就x方向與y方向的力作討論

上課筆記:

2021.4.28 材料物理特性

今天的上課主題有別於前兩次的課程,因為機器過幾週後要出去比賽的關係,助教決定要來上一堂材料學的相關課程(因為機器太容易不知道為什麼某些結構就斷掉了)
這週的內容主要介紹材料物理性質(剛性、強度)、降幅點(彈性極限)、脆性延性材料(受力與應變關係圖),內容豐富且蠻有趣的!

上課筆記:

2021.6.2 材料力學

比完賽後發現我們隊的機器太容易損壞了!在賽中的回合幾乎都會有零件失效或出狀況,因此延續上一週的主題,助教給我們補充很多關於材料的理論與力學的分析

難度頗高,我懷疑助教是直接把大學教材搬過來教我們,從基本力的介紹:正向力(Normal Force)、剪力(Shear Force)、彎矩(Bending Moment),到應力的種類:正應力(Normal Stress)、剪應力(Shear Stress),最困難的公式推導與一堆新的名詞:楊氏係數、剪切模量、頸縮等

經過一週的消化,才稍稍理解這其中的內容

上課筆記:

Solid Work 3D繪圖軟體

這學期的Solid work繪圖主要分成三部分:

  1. 基礎圖學(工程圖學、手繪圖規範)
  2. 範例元件繪製
  3. 期末Solid work繪圖測驗

個人認為最困難的應該是工程圖學,助教花了很多時間教我們圖學中的箭頭、尺度、標註位置、單位、圓與弧度的標示方式等等,東西又多又繁雜
雖然聽過一次,我相信除非有再複習,否則一定很快就會忘記:cry:

關於期末繪圖測驗的部分,要求繪製出一個符合以下題目要求的規格,並在上面繪製出螺絲孔,要求如下:

依照題目的要求做好尺寸的標記(題目要求):

這是符合題目要求的最終成果:



ANSYS有限元素分析

這應該是課程中最有趣的單元了!
可以透過電腦分析,模擬出物體在受力與力矩時的應變量,利用這個分析助教想告訴我們說可以藉由這個軟體分析機器才受外力(碰撞)的時候,哪一個部件應該會最先發生變形甚至破裂,提早防範

總共有幾個步驟需要完成:

前置處理、建模

可以先透過ANSYS 將想要模擬的物件建模,方便等一下的求解

並將建模完成的物體匯入Workbench 進行後續的模擬與分析

切網格

這一步驟可說是重點步驟,透過切網格的方式,來模擬真實世界中的元素,因此網格如果切的越細,模擬會變得更精準,但同時所需要花費運算的時間也就越長
切網格有一個重點就是盡量切成正方形(或是矩形),避免切出不規則形狀的網格!

這樣切網格就不是一個很好的作法,網格應該要更加縝密

這就是一個不錯的網格,不過切成舉行矩形應該會更好

固定物件並增加力矩

將物件的兩端固定住,並在其中一邊施加力矩(Y分量:$-1000Nm$)

求解(Solve)

最後就可以根據設定的參數看模擬的結果
在其中一端施加力矩,可以發現兩端的應變量是最大的,向另外一端遞減

應變量:

最大主應力:

可以發現在洞口的地方的值是最大的,也就顯示在物體受到外力的時候,通常在有鑽洞的地方所受到的負擔是最大的

模擬GIF


心得

這學期學習到很多,不管是理論方面的知識,或是電腦繪圖與現象模擬的技巧都頗有收獲。最讓我印象深刻的是有限元素的分析,雖然在載這個軟體花費了相當多的時間(檔案超大),在建模與設定參數也遇上了些許困難,不過能順利求解也讓人相當開心!

參考資料

上課內容

好噁心喔,複雜度竟然帶根號!? 根號算法有很多例題,最常聽到(或遇到?)的就是分塊了!把序列分成$\sqrt{K}$ 塊,在做RMQ(區間加值、區間求和等)的其中一種方式

  1. RMQ區間極值詢問(可以用分塊做、線段樹、BIT、稀疏表sparse table)
  2. Counting Triangle
  3. 分塊(值域分塊、塊狀鍊表等)
  4. 操作分塊

其實根號算法的重點其實在於複雜度分析(講師花很多時間講不同作法的複雜度分析),怎麼樣分析讓複雜度跑出根號

閱讀全文 »

上課內容

這一週講隨機,主要講rolling hash,字串的hash、隨機的例題,像是矩陣乘法的驗證$O(n^2)$、訪問區間各元素出現次數是否為k的倍數,最近點對的$O(n)$作法等(還有東西還沒有看XD)

閱讀全文 »

上課內容

並查集 Disjoint Set

目標:快速判斷兩個元素是否同屬一個集合
功能:詢問元素隸屬的集合、合併兩個集合,在圖論中,集合通常表示連通快,並查集可以查詢任兩點是否連通。在實作MST的時候,當我們要檢查兩個點連接成的邊是否會跟其他已經加入的邊形成環,就會使用並查集幫助我們判斷!
複雜度:非常優秀,可以說是O(1)

閱讀全文 »