i 個の測定点 (x[i],y[i]) を,最小二乗法などを用いて下記の式にフィッティングさせようと考えています。Visual Basic で作成した測定プログラムの中で使用したいのですが,具体的にどのようなアルゴリズムでフィッティングを行えばいいのか分かりません。

Y = A * sin(X - C)^2 + B

実測する x[i] の範囲は狭く,例えば -15°~ +15°まで 0.2°毎の計 151 プロット,といった感じです。そして定数 A,B,C の内,最も高い精度で求めたい定数は C です。測定の段階で x の範囲を狭めているのは,正確な C (通常 1°未満)を求めるためです。

この測定は x[i] にはほとんど誤差が含まれませんが y[i] には誤差があります。y[i] の含まれている誤差は試料によってまちまちなので,一概には言えません。目視ではほとんど誤差が分からない綺麗なカーブの場合,逆に目視で辛うじて下に凸の曲線が分かる程度の場合,どちらもあり得ます。

考え方だけでも構いませんので,どうかご教授下さい。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (11件中11~11件)

過去に最小二乗法(最小自乗法)の質問はかなりあり,


回答も相当なものが出ています.
質問検索で検索されましたでしょうか?

中でも
http://oshiete1.goo.ne.jp/kotaeru.php3?q=97271
http://oshiete1.goo.ne.jp/kotaeru.php3?q=98446
http://oshiete1.goo.ne.jp/kotaeru.php3?q=33318
http://oshiete1.goo.ne.jp/kotaeru.php3?q=28839
http://oshiete1.goo.ne.jp/kotaeru.php3?q=24627
あたりは参考になるかと思います.
特に stomachman さんがお得意のようで,
大変熱心に回答されておられます.
    • good
    • 0
この回答へのお礼

> 質問検索で検索されましたでしょうか?

申し訳ありません。検索しておりませんでした。

siegmundさんのおっしゃるURLは非常に参考になりました。この度は,ご回答ありがとうございました。

お礼日時:2001/12/06 01:30

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Aベストアンサー

>所で、今回の問題は
「また、この線形方程式についての結果は何を物語っているか?」
とも問われているのですが
その答えは「∩[i=1,..,m]Ker(yi)の補集合の直交補空間の元を表している」と答えれば正解でしょうか?

●「この線型方程式」とあるが、どこに線型方程式があるのか僕には分かりません。

●意味・意義の解釈は種々にできます。これこそ自分の頭で考えるべきことでしょう。

●あなた自身が指摘してくれた通り、Vはもともと内積は定義されてないのですから、直交補空間をもちだすのは不適切です。内積を用いない解釈を、まずは求められていると思います。
もしも「直交補空間」という概念を用いるなら、どういう内積を入れるのか、書かねばなりません。(僕が「修正」でそうしたように)

●しかしどんな内積を入れたとしても、「「∩[i=1,..,m]Ker(yi)の補集合の直交補空間」は、yiがすべてゼロ写像ならば、V。そうでなければ、{0}になります。(よく考えて見ましょう)

●僕ならば、「この結果は、残念ながら言葉を話せないので、何も物語ることができない」と答えます。
ほとんど自明な結果であり、大した意味があるとは思えませんので、皮肉として。

以上。あまり人にばかり聞かず、自分でよく勉強することを勧めます。
おそらく同じ学校のメンバーがよく問題を丸投げしているので、しばらく答えるのは控えようと思います。

>所で、今回の問題は
「また、この線形方程式についての結果は何を物語っているか?」
とも問われているのですが
その答えは「∩[i=1,..,m]Ker(yi)の補集合の直交補空間の元を表している」と答えれば正解でしょうか?

●「この線型方程式」とあるが、どこに線型方程式があるのか僕には分かりません。

●意味・意義の解釈は種々にできます。これこそ自分の頭で考えるべきことでしょう。

●あなた自身が指摘してくれた通り、Vはもともと内積は定義されてないのですから、直交補空間をもちだすのは不適切です...
続きを読む

Qx[1]・x[2]・…・x[n]=1 ならば x[1] + x[2] + … + x[n] ≧ n

x[k]>0 (k=1,2,…,n)とする。

このとき、
x[1]・x[2]・…・x[n]=1 ならば x[1] + x[2] + … + x[n] ≧ n

と予想しましたが、証明できるのでしょうか?

また、
x[1] + x[2] + … + x[n] = 1 とすると、x[1]・x[2]・…・x[n] に関する何らかの不等式はあるのでしょうか?

Aベストアンサー

そのまま相加相乗平均ですね。

( x[1] + x[2] + … + x[n])/n≧(x[1]・x[2]・…・x[n])^(1/n)=1
x[1] + x[2] + … + x[n]≧n

反対も同じです。

1/n≧(x[1]・x[2]・…・x[n])^(1/n)
x[1]・x[2]・…・x[n]≦(1/n)^n

Q何故,[g]=[Ψ]1[f][Φ]^-1ではなく[g]=[Ψ]^-1[f][Φ]なの?

[v_1,v_2,…,v_n],[v'_1,v'_2,…,v'_n]を線形空間Vの基底とする。
[w_1,w_2,…,w_m],[w'_1,w'_2,…,w'_m]を線形空間Wの基底とする。

それで図のように

fを基底[v_1,v_2,…,v_n]から基底[w_1,w_2,…,w_m]での線形写像。
gを基底[v'_1,v'_2,…,v'_n]から基底[w'_1,w'_2,…,w'_m]での線形写像。
そしてΦを[v_1,v_2,…,v_n]から[v'_1,v'_2,…,v'_n]への基底変換の写像。
Ψを[w_1,w_2,…,w_m]から[w'_1,w'_2,…,w'_m]への基底変換の写像とすると
gの表現行列を[g]と表す事にすれば
[v'_1,v'_2,…,v'_n]→[v_1,v_2,…,v_n]→[w_1,w_2,…,w_m]→[w'_1,w'_2,…,w'_m]と写されるので
[v'_1,v'_2,…,v'_n]→[v_1,v_2,…,v_n]はΦ^-1,
[v_1,v_2,…,v_n]→[w_1,w_2,…,w_m]はf,
[w_1,w_2,…,w_m]→[w'_1,w'_2,…,w'_m]はΨで
結局[g]=[Ψ][f][Φ]^-1となると思ったのですがなぜか本には
[g]=[Ψ]^-1[f][Φ]となっています。何処を勘違いしたのでしょうか?

[v_1,v_2,…,v_n],[v'_1,v'_2,…,v'_n]を線形空間Vの基底とする。
[w_1,w_2,…,w_m],[w'_1,w'_2,…,w'_m]を線形空間Wの基底とする。

それで図のように

fを基底[v_1,v_2,…,v_n]から基底[w_1,w_2,…,w_m]での線形写像。
gを基底[v'_1,v'_2,…,v'_n]から基底[w'_1,w'_2,…,w'_m]での線形写像。
そしてΦを[v_1,v_2,…,v_n]から[v'_1,v'_2,…,v'_n]への基底変換の写像。
Ψを[w_1,w_2,…,w_m]から[w'_1,w'_2,…,w'_m]への基底変換の写像とすると
gの表現行列を[g]と表す事にすれば
[v'_1,v'_2,…,v'_n]→[v_1,v_2,…,v_n]→...続きを読む

Aベストアンサー

記号を整理しておく。

線形写像T: V→Wを、Vの基底[v1,...,vn]とWの基底[w1,...,wn]で表現した行列を[f]、
同じ線形写像Tを、Vの基底[v'1,...,v'n]とWの基底[w'1,...,w'n]で表現した行列を[g]で表す。
[v1,...,vn]から[v'1,...,v'n]への基底変換の行列を[Φ]とする。
(v'1,...,v'n)=(v1,...,vn)[Φ]

[w1,...,wn]から[w'1,...,w'n]への基底変換の行列を[Ψ]とする。
(w'1,...,w'n)=(w1,...,wn)[Ψ]

Vの元を基底[v1,...,vn]で表現したものを[x]、
同じ元を基底[v1,...,vn]で表現したものを[x']で表すと、(回答#2より)
[x]=[Φ][x']

同様に、Wの元を基底[w1,...,wn]で表現したものを[y]、
同じ元を基底[w1,...,wn]で表現したものを[y']で表すと、
[y]=[Ψ][y']

線形写像Tを基底[v1,...,vn]と基底[w1,...,wn]で表すと、
[y]=[f][x]
同じ線形写像Tを基底[v'1,...,v'n]と基底[w'1,...,w'n]で表すと、
[y']=[g][x']

これらの関係から、
[y']=[Ψ^-1]*[y]=[Ψ^-1]*[f][x]=[Ψ^-1][f][Φ][x']
となり、これを[y']=[g][x']と見比べると、
[g]=[Ψ^-1][f][Φ]
となっていることがわかる。

最初の質問にあった、
>[v'_1,v'_2,…,v'_n]→[v_1,v_2,…,v_n]→[w_1,w_2,…,w_m]→[w'_1,w'_2,…,w'_m]と写されるので
の対応はベクトル間の対応であって、だからこそ、その係数(=成分)の対応はこれとちょうど逆の変換を受けるのである。このことは、
[v][x]=[v'][Φ^-1]*[Φ][x']
[w][y]=[w'][Ψ^-1]*[Ψ][y']
と表してみてもわかる。ベクトルの成分[x']は行列[Φ]によって[x]にうつり、同じく成分[y']は行列[Ψ]によって[y]にうつっている。だから、同一の線形写像が
f:[x]→[y]
g:[x']→[y']
と表現されているなら、[Ψ][g][x']=[f][Φ][x']となっていて、いいかえると、
[x']→[y']の対応は、[x']→[x]→[y]→[y']という対応をたどったときも、一致していなくてはならない。だから、成分で考えたとき、[g]は、[Φ]→[f]→[Ψ^-1]と同一になるのである。つまり[g]=[Ψ^-1][f][Φ]。

あなたのいう[Φ^-1]→[f]→[Ψ]は、基底ベクトルの対応関係であって、成分表示と混同してはいけない。

記号を整理しておく。

線形写像T: V→Wを、Vの基底[v1,...,vn]とWの基底[w1,...,wn]で表現した行列を[f]、
同じ線形写像Tを、Vの基底[v'1,...,v'n]とWの基底[w'1,...,w'n]で表現した行列を[g]で表す。
[v1,...,vn]から[v'1,...,v'n]への基底変換の行列を[Φ]とする。
(v'1,...,v'n)=(v1,...,vn)[Φ]

[w1,...,wn]から[w'1,...,w'n]への基底変換の行列を[Ψ]とする。
(w'1,...,w'n)=(w1,...,wn)[Ψ]

Vの元を基底[v1,...,vn]で表現したものを[x]、
同じ元を基底[v1,...,vn]で表現したものを[x']で表すと、(...続きを読む

Aベストアンサー

(*)式が間違っているように見えますが・・・。これではn=3のときにしか成立しません。
n=4のとき
P(C(1)∪C(2)∪C(3)∪C(4))
= P(C(1))+P(C(2))+P(C(3))+P(C(4))
-P(C(1)∩C(2))-P(C(1)∩C(3))-P(C(1)∩C(4))-P(C(2)∩C(3))-P(C(2)∩C(4))-P(C(3)∩C(4))
+P(C(1)∩C(2)∩C(3))+P(C(1)∩C(2)∩C(4))+P(C(1)∩C(3)∩C(4))+P(C(2)∩C(3)∩C(4))
-P(C(1)∩C(2)∩C(3)∩C(4))
というのは理解されていますか?

正しくは、
P(∪[i=1..n]C(i))
= Σ[i=1..n]P(C(i))-Σ[i1,i2=1..n, i1<i2]P(C(i1)∩C(i2))+Σ[i1,i2,i3=1..n, i1<i2<i3]P(C(i1)∩C(i2)∩C(i3))
-Σ[i1,i2,i3,i4=1..n, i1<i2<i3<i4]P(C(i1)∩C(i2)∩C(i3)∩C(i4))+…+(-1)^(n-1)P(∩[i=1..n]C(i))
となり、交互に符号が代わり共通部分を取る集合の数も1つずつ増えます。

証明の方針はあっていますよ。

(*)式が間違っているように見えますが・・・。これではn=3のときにしか成立しません。
n=4のとき
P(C(1)∪C(2)∪C(3)∪C(4))
= P(C(1))+P(C(2))+P(C(3))+P(C(4))
-P(C(1)∩C(2))-P(C(1)∩C(3))-P(C(1)∩C(4))-P(C(2)∩C(3))-P(C(2)∩C(4))-P(C(3)∩C(4))
+P(C(1)∩C(2)∩C(3))+P(C(1)∩C(2)∩C(4))+P(C(1)∩C(3)∩C(4))+P(C(2)∩C(3)∩C(4))
-P(C(1)∩C(2)∩C(3)∩C(4))
というのは理解されていますか?

正しくは、
P(∪[i=1..n]C(i))
= Σ[i=1..n]P(C(i))-Σ[i1,i2=1..n, i1<i2]P(C(i1)∩C(i2))+Σ[i1,i2,i3=1..n, i1<i2<i3]P...続きを読む

QMathematica f[{x, y}]を f[{a, x, y}]に変えたい

関数の f[{x, y}]+g[{z, w}] という式があったときに,これらの式の f や g の中に入っているリスト(今の場合は,{x, y}や{z, w})の先頭に,a を付け加えて, f[{a, x, y}]+g[{a, z, w}] のようにしたいと考えています.
(すなわち,f[{x, y}]+g[{z, w}]を f[{a, x, y}]+g[{a, z, w}]に変えたり,また他の例としては,f[{x, y}]+g[{z, w}]+h[{c, d}]を f[{a, x, y}]+g[{a, z, w}]+h[{a, c, d}]に変えたりしたい.)

このとき,例えばPretendを使うと,
Prepend[f[3, 1], 2]
によって,f[2, 3, 1]が得られることなどは知っていますが,上記のようなものに対して,どのようにすればよいのかが,わかりません.

もしもご存じの方がおられれば,お教え頂けないでしょうか?

Aベストアンサー

パターンマッチングを使うのがMathematica的です。

f[{x, y}] + g[{z, w}] /. {s_Symbol[{args__}] -> s[{a, args}]}


人気Q&Aランキング

おすすめ情報