一個罐頭其中高度為h,底部半徑為r,且 h/r=2
已知 容量V = 1(公升)
找到一組: h(高度) , r(底部半徑) 使得表面積最小
目的:
因表面積最小因此可以讓製造成本降低幫助企業省錢
算式如上
答案我也使用python驗證一下求出數值解
接下來換個角度跟工具
使用牛頓法的方式將這個問題當成最佳化中的求最小值問題
目標函數是:
也就是求 2 * pi * r^2 + 2/r 這個目標函數的最小值
讓我們來定義該函數的python表示
機器學習搞習慣了這裡寫loss function XD
接下來來定義牛頓法(minNewton)和梯度下降法(minGD)
接下來實際執行
可以看到梯度下降法的弱點 learning rate(學習率)調整不好會影響結果
牛頓法則是非常快速收斂到正確的解
最後再把公式解跟使用牛頓法和梯度下降法的解拿來比較一下
本文章主要學到
1.python中jax套件的使用方式
2.如何在現實中應用微積分
3.牛頓法和梯度下降法的差異跟優劣