0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JuliaのGlobal Fitパッケージの紹介

Posted at

さあ、始めましょう!これはJulia言語でのグローバルフィットの例です。指定されたパラメータ $x_0 = 1.8$ と $\gamma = 0.002$、およびドメイン $ \text{dom} = \text{Domain}(1.77:0.0005:1.81) $ を使用します。

ステップバイステップの例

  1. **GModelFit.jlのインストール

    using Pkg
    Pkg.add("GModelFit")
    
  2. 共有するパラメータを指定しつつモデルを規定する:

    using GModelFit
    
    # Define the domain
    dom = Domain(1.77:0.0005:1.81)
    
    # Define a shared parameter for the width
    shared_gamma = Parameter(:gamma, 0.002)
    
    # Define the model for the real part with shared gamma
    model_real = Model(dom, :real => GModelFit.Lorentzian(1.8, shared_gamma))
    
    # Define the model for the imaginary part with shared gamma
    model_imag = Model(dom, :imag => GModelFit.Lorentzian(1.8, shared_gamma))
    
    # Combine both models
    combined_model = Model(dom, :main => SumReducer(:real, :imag))
    
  3. データを生成する

    # Example data (replace with your actual data)
    x = 1.77:0.0005:1.81
    real_data = 1 ./ ((x .- 1.8).^2 .+ 0.002^2) .+ 0.1 .* randn(length(x))
    imag_data = 1 ./ ((x .- 1.8).^2 .+ 0.002^2) .+ 0.1 .* randn(length(x))
    
    # Create Measures
    data_real = Measures(dom, real_data, 0.1 .* ones(length(x)))
    data_imag = Measures(dom, imag_data, 0.1 .* ones(length(x)))
    
    # Combine data
    combined_data = vcat(data_real, data_imag)
    
  4. モデルフィット:

    best, res = fit(combined_model, combined_data)
    
  5. 結果のプロット:

    using Plots
    
    plot(x, real_data, label="Real Data", lw=2)
    plot!(x, imag_data, label="Imaginary Data", lw=2)
    plot!(x, best[:real], label="Fitted Real", lw=2, linestyle=:dash)
    plot!(x, best[:imag], label="Fitted Imaginary", lw=2, linestyle=:dash)
    

説明しよう!

  • モデル定義: 実部と虚部の両方に共通のパラメータを持つローレンツモデルを定義する。 (\gamma).
  • データ生成: 実数部と虚数部の両方に合成データを生成しますが、ノイズも追加します。
  • 回帰分析: 結合モデルを結合データに適合させます。
  • プロット: 実数データと虚数データをフィッティング結果とともに視覚化します。

可視化

フィッティング結果の視覚化は次のとおりです。Jupyterに上のコードを貼り付けて実行してみてください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?