2023-09-19|閱讀時間 ‧ 約 0 分鐘

jax牛頓法_解決罐頭製造cost最小化問題

raw-image

一個罐頭其中高度為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.牛頓法和梯度下降法的差異跟優劣

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.