pythonによる最小二乗法・最適化問題 GUIプログラミング

ファイル

  1. 最小二乗法講義スライド: 講義-プログラム-数値計算2019E.pptx

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