
私はデータセットを持っています:
1.12158 0.42563 0.07
1.12471 0.42112 0.07
1.12784 0.41685 0.07
1.13097 0.41283 0.07
1.13409 0.40907 0.07
1.13722 0.40556 0.07
1.14035 0.40231 0.07
1.14348 0.39933 0.07
1.1466 0.39661 0.07
1.14973 0.39417 0.07
1.15285 0.39201 0.07
1.15598 0.39012 0.07
1.15911 0.38852 0.07
1.16224 0.3872 0.07
1.16536 0.38618 0.07
1.16849 0.38544 0.07
1.17162 0.385 0.07
1.17474 0.38486 0.07
1.17787 0.38543 0.07
1.181 0.38714 0.07
1.18413 0.38994 0.07
1.18725 0.39378 0.07
1.19038 0.39858 0.07
1.19351 0.40426 0.07
1.19664 0.41071 0.07
1.19976 0.41786 0.07
最初の列はx軸、2番目の列はy軸です。
このデータを方程式に合わせたいです。
Ax^2 + Bx + c
A、B、cの値を求めます。
どのプログラムを使用できますか?
どうすればいいのか教えてくれたら本当に嬉しいです。
ありがとうございます。
答え1
GNUplot:CLIソリューション
data.dat
データを含むファイルであるとします。
$ gnuplot
gnuplot> fit a*x**2 + b*x + c 'data.dat' via a, b, c
(...)
Final set of parameters Asymptotic Standard Error
======================= ==========================
a = 22.2174 +/- 1.09 (4.906%)
b = -51.7961 +/- 2.53 (4.885%)
c = 30.5745 +/- 1.468 (4.802%)
(...)
バラより文書のセクションに合わせるより多くの選択のために。
GNUPlotに直接パイプすることもできます。
printf '%s\n' 'fit a*x**2 + b*x + c "data.dat" via a, b, c' | gnuplot
答え2
XMGrace(Graceとも呼ばれる):GUIソリューション
data.dat
データを含むファイルであるとします。
xmgrace data.dat
XMGraceウィンドウは、データを表す曲線とともにポップアップされます。
ツールバーからを選択しますData > Transformations > Regression
。Type of Fit: Quadratic
と を選択しますAccept
。
新しいフィット曲線が描かれ、「コンソール」が表示されます。
(...)
y = 30.575 - 51.796 * x + 22.217 * x^2
(...)
さらに、GUIを使用してデータを黒い点にし、赤い曲線に合わせることができます。
XMGraceはいくつかの機能を欠いていますが、CLIインターフェイスも提供します。詳細は以下から確認できます。文書へのアクセス。
答え3
CLIによるRのソリューション
Linuxの最初の端末タイプR
それから
data.dat<-read.table(textConnection("a b c
1.12158 0.42563 0.07
1.12471 0.42112 0.07
1.12784 0.41685 0.07
1.13097 0.41283 0.07
1.13409 0.40907 0.07
1.13722 0.40556 0.07
1.14035 0.40231 0.07
1.14348 0.39933 0.07
1.1466 0.39661 0.07
1.14973 0.39417 0.07
1.15285 0.39201 0.07
1.15598 0.39012 0.07
1.15911 0.38852 0.07
1.16224 0.3872 0.07
1.16536 0.38618 0.07
1.16849 0.38544 0.07
1.17162 0.385 0.07
1.17474 0.38486 0.07
1.17787 0.38543 0.07
1.181 0.38714 0.07
1.18413 0.38994 0.07
1.18725 0.39378 0.07
1.19038 0.39858 0.07
1.19351 0.40426 0.07
1.19664 0.41071 0.07
1.19976 0.41786 0.07"),header=TRUE)
それから
plot(data.dat$a,data.dat$b,col="red",type="b")
解決するには、次を使用します。
fit<-lm(data.dat$b~poly(data.dat$a,2,raw=TRUE))
summary(fit)
Call:
lm(formula = data.dat$b ~ poly(data.dat$a, 2, raw = TRUE))
Residuals:
Min 1Q Median 3Q Max
-0.0041754 -0.0021479 0.0004573 0.0019714 0.0059427
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.575 1.468 20.83 < 2e-16 ***
poly(data.dat$a, 2, raw = TRUE)1 -51.796 2.530 -20.47 2.91e-16 ***
poly(data.dat$a, 2, raw = TRUE)2 22.217 1.090 20.38 3.20e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.002729 on 23 degrees of freedom
Multiple R-squared: 0.9568, Adjusted R-squared: 0.9531
F-statistic: 255 on 2 and 23 DF, p-value: < 2.2e-16