# pythonによる最適化ＧＵＩプログラミング

## ファイル

- 全ファイルのZIPアーカイブ: tutorial-optimize.zip

1. 最小二乗法講義スライド: 講義-プログラム-数値計算2019E.pptx
2. 下記のpythonプログラムの説明 (未完成): pythonプログラミング.docx
   Wordファイルの内容はすべて、左メニューの各項目に移植されました (2019/9/9)

## pythonプログラム

a) 基本

1. 入力データ (CSVファイル)
   data.csv
2. CSVの読み込み
   01-readcsv.py
   ``
3. CSVから読み込んだデータをグラフ(散布図)にプロット
   02-plotcsv.py
   ``

b) numpy.polyfit() を使った多項式最小二乗

1. 多項式最小二乗法を行う
   03-polynomial-lsq.py
2. 多項式最小二乗法を行い、グラフにプロット
   04-polynomial-lsq-plot.py

c) scipy.optimize.leastsq()を使って多項式最少二乗法

1. 多項式最小二乗法を行い、グラフにプロット
   05-leastsq-plot.py
2. フィッティング範囲を指定して多項式最小二乗法を行い、グラフにプロット
   06-leastsq-plot-range.py
3. フィッティング範囲を起動時引数で変えられるように
   07-leastsq-plot-range-arg.py

c-2) 直列抵抗、shunt抵抗のあるダイオードの等価回路モデルでI-V特性をフィッティング。
I-V特性を求めるために、方程式の解を求めるscipy.optimize.fsolve() を使う。
最小二乗法はscipy.optimize.optimize()を使う (simplex法)。

1. プログラム 07b-diodeiv-leastsq.py
   データdiodeiv.csv
   実行: python 07b-diodeiv-leastsq.py diodeiv.csv

d) tkinterを使い、ファイル選択、フィッティング範囲などを指定する部分をGUI化する

1. tkinterを使ってGUIインターフェースを作る (最小二乗は関係なし)
   08-GUI-tkinter.py
2. d)-1とc)-1を組み合わせて、GUIでファイル選択をして最小二乗を行う。
   09-leastsq-GUI.py
3. d)-1とc)-3を組み合わせて、GUIで条件設定をして最小二乗を行う。
   初期設定をinifile形式の設定ファイルから読み込む (未完)。
   10-leastsq-GUI-inifile.py
   注意： Anacondaを使っている場合でも、configparserのインストールが必要
   D:\> conda install configparser
4. tkinterのcanvasにmatplotlibを表示。
   11-leastsq-GUI-tkmatplot.py