S__361832453.jpg

住大樓的視野及風景雖賞心悅目
但對於家裡有小小孩的家長可是膽戰心驚
於是隱形鐵窗成為了必備的安全措施
經過一番比較選擇了有十年保固的高高順
高高順隱形鐵窗使用316L不鏽鋼絲繩,拉力為140-270公斤

haruka 發表在 痞客邦 留言(1) 人氣()

$${y}''+2y=2cos\left ( 2t \right ),y\left (0 \right )=0,{y}'\left ( 0 \right )=0$$

呃,說實在話,這是當初在試著實作牛頓法的微分副程式時,搞錯對象而實作出來的

一直到實作出來才發現這是在解常微分方程式的…。(汗)

那麼就將錯就錯來看看囉…。

選定一個2階常微分方程式及其邊界值為  

可以被化作為一對1階常微分聯立常微分方程式

haruka 發表在 痞客邦 留言(0) 人氣()

$$\begin{bmatrix} I \end{bmatrix}_{N\times N}$$

其實…,寫得出n階聯立方程式求解,就寫得出這個主題…,因為方法都是高斯消去法…。

因為由矩陣運算可以得知…,設單位矩陣為,任意方陣為

則,因此透過高斯消去法運算後就可以得到囉!!

相關演算法在wiki上面都有,就不特別列出來囉。

來看看效果如果…,用上一篇文的範例來測試。

haruka 發表在 痞客邦 留言(0) 人氣()

$\left\{\begin{matrix} 3x&+ &4y &+ &5z &+ &6a &= &113 \\ 2x&+ &3y &+ &5z &+ &7a &= &123 \\ x&+ &y &+ &z &+ &a &= &38 \\ 5x&+ &2y &+ &2z &+ &3a &= &78 \end{matrix}\right.$

這個主題也是個人非常想要實現的功能之一,不過要解聯立方程式的方法有蠻多種的。

像是加減代入消去法、行列運算、克拉瑪法則或是LU分解法等等…。

思考了很久,也參考了很多書籍跟網路上的資訊,個人感覺用行列運算的方式比較符合電腦運算的邏輯

也比較符合個人想實現擴展成N階都能使用的方法

既然選定了行列運算(高斯消去法),就開始來實作囉。

haruka 發表在 痞客邦 留言(0) 人氣()


辛普森積分法則分為  法則與  法則兩個方法,且同樣具有代數精度

時間複雜度也同樣為,不過法則的截尾誤差比法則還要小一點

在表現上也是稍優於法則的。

因此,個人在設計上主要是以法則為主,再以法則為輔。

先來看一下法則的表示式:

haruka 發表在 痞客邦 留言(0) 人氣()


其實…這個沒什麼好說的…,就是去wiki一下…,把公式照刻上去就好了…。

一元二次方程式(維基)

同場加映~牛頓法

一元三次方程式(維基)

同場加映~牛頓法

haruka 發表在 痞客邦 留言(0) 人氣()


儲存檔案之後「以系統管理員身份執行」重新開啟Visual Studio及本專案,Compile完成就可以囉!

compile完成會生成下面幾個檔案,並且會自動把dll註冊好。

接著只要進到vba的畫面,選擇「工具」→「設定引用項目」,就會看到自訂的dll囉!

接著只要先Excel Vba 先New一個ComClass1(因為這個case是使用ComClass1這個名稱),就可以直接引用dll裡面的function囉!

使用的語法大概是像…

haruka 發表在 痞客邦 留言(0) 人氣()


再來,右鍵點選「ClassLibrary2」並選擇「屬性」→「參考」→「新增」

選擇「COM」→勾選「Microsoft Office 16.0 Object Library」→「確定」

確定之後往下拉,接著在「匯入的命名空間」勾選「Microsoft.Office.Core」

接著點選「ComClass1.vb」就可以開始編輯程式碼了!編輯完成之後,先點選「ClassLibrary2」→「屬性」→「應用程式」→「組件資訊」→「讓組件成為COM可見」→「確定」

【wei*2黑白寫VBA】將VBA的程式碼封裝成dll(一)

haruka 發表在 痞客邦 留言(0) 人氣()


前情提要一下自己目前的軟硬體…Intel® Core™2 Duo Processor T6600,DDR2 4G的RAM(2009年出產的筆記型電腦)

搭載Microsoft Windows7 64bit Office 2016 64bit 以及 Visual studio 2017

當初會想把vba的程式碼封裝起來主要是考慮到程式執行的速度。

因為用vba在轉換135萬筆座標的時候,居然需要跑整整半小時,對,半小時…。

後來重新用Visual Basic.Net把它包起來引用後,一樣的數據只需要居然4分鐘就跑完了。(不過我還是喜歡在垂手可得的vba上面編程)

haruka 發表在 痞客邦 留言(0) 人氣()


會寫到數值微分主要是因為…之前所提到的牛頓法會需要用到

基本上,如果只是單純要跑牛頓法,可以使用Richardson's Extrapolation得到的公式,這邊就不再細講。

比較讓我感到有興趣的,當然是推廣到N階都可以應用的方法…。

幾經尋找,總算找到所謂的…Finite Difference Method

一般來說,數值微分大概都分為Forward、Backward跟Central三種方式。

haruka 發表在 痞客邦 留言(0) 人氣()


為什麼會想實作牛頓法呢?因為覺得如果能夠叫電腦幫我把方程式的根求出來很潮,所以…,嗯…。

牛頓法,是一種實數域及複數域上近似求解方程式的方法。

就不推導了(其實是推不出來),想要了解,請至維基百科或是線代啟示錄…。

主要是欲解多元一次方程式,所以透過牛頓法的公式來實作。

由公式來看

haruka 發表在 痞客邦 留言(0) 人氣()


嗯?為什麼要重新造輪子呢?因為透過這個方法,才能夠讓完全不懂寫程式的自己可以練習,從做中學習,遇到不懂的,也比較有既有的範例跟資料可以參考。

個人以為,寫程式的邏輯是不會受限於某種特定的語言的。(因此,即便不是自己熟悉的語法也無妨),而且這個程式的作法其實很簡單…

http://wangshifuola.blogspot.com/2010/08/twd97wgs84-wgs84twd97.html

我就直接參考這個網站,把它整個拿來翻成vba的語法…,如此而已…。那麼…,結束了(誤)

簡單介紹一下…,因為我希望可以一次匯入大批座標,並且完成大量座標轉換,因此設計了一個匯入座標,專門用來匯入存放在純文字檔案(TXT)的座標。

haruka 發表在 痞客邦 留言(1) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。