Browsed by
Tag: Rosenbrock Function

iSMART〜The Hyper-Dual Numbers in Fortran

iSMART〜The Hyper-Dual Numbers in Fortran

4ヶ月に亘る冬籠りでPython,Juliaの自動微分の実装を終え、Fortran Simulator “iSMART”をJulia言語に変換中にある。スタンフォード大の博士論文を渉猟している折、Hyper-dual numbersなる超実数を用いて厳密に一階偏導関数、加えて二階偏導関数も導出できる論文に出会う。急遽変換を中断し、FortranによるHyper-dual numbersの実装を試みることにする。あの冬籠りは一体何だったんだろうか?After four months of dedication during the winter, I finished the implementation in Python and Julia for the automatic differentiation. I am currently working on converting the in-house Fortran program “iSMART” to Julia. While browsing papers at Stanford University, I came across a Ph.D. thesis on hyper-dual numbers, which is an extension of real numbers that can derive the first-order partial derivatives as well as the second-order partial derivatives in a strict manner. Suddenly I stopped…

Read More Read More

iSMART〜Automatic Differentiation in Julia Final

iSMART〜Automatic Differentiation in Julia Final

九谷広場でJulia版ADモジュールの開発に悪戦苦闘していた日曜の午後、騒がしい排気音に集中力が途切れがちになる。当初は気に止めずにいたが女性陣が騒ぎ出したのを機に外に目を向けるとロゴを付けた旧車が何台も駆け抜けている。何事だと外に出て交通整理の係員に問いかけると、初めて北陸で開催される車イベントで堺正章さんも参画。今晩ここに泊まって明朝ゴールの京都へ向かうと聞く。目を凝らしてロゴをみると”La Festa Primavera 2023″とある。あの本邦一格式の高いイベントかと驚く。明朝出発セレモニーで往年の名車に出会えると思うと、ハイな気分になり一気にモジュールの開発が捗り完成する。さて、Julia版ADモジュールのご紹介を兼ねたJulia言語概要解説編をお届けします。On a Sunday afternoon, while I am struggling to develop Julia’s version of the AD module at Kutani Square, the loud exhaust noises cause me to lose my concentration. I don’t pay attention at first, but then I look outside and see a bunch of old cars with logo stickers driving by as the women start to make a fuss. I go outside to ask an event staffer at the traffic control what’s going on. It turns…

Read More Read More

iSMART〜Automatic Differentiation Part 2

iSMART〜Automatic Differentiation Part 2

Pythonによる自動微分クラスの構築、実装の検証編をお届けします。単なるプログラミングな知見を駆使するだけで自動微分の肝はPart 1に集約されます。Part 2 would hopefully address an implementation and verification of the Automatic Differentiation Initiative class in Python. A mere programming skill is required in this part. The core of AD could be covered in Part 1.