
No.5
- 回答日時:
ニュートン法については参考URLを参照してください。
VBAで組むとしたら
function f(x as double)as double
f=A1*exp(-x/t1)+A2*exp(-x/t2)+A3*(-x/t3)
end function
function df(x as double)as double
df=-A1/t1*exp(-x/t1)-A2/t2*exp(-x/t2)+A3*(-1/t3)
end function
Function newton (y as double,eps as double)as double
dim x0 as double
dim x1 as double
rem 初期値として適当な値を指定します。
x0=10.0
while((f(x1-y)*(f(x1-y))>eps
x1=x0-f(x0)/df(x0)
x0=x1
wend
newton=x1
end function
ここでepsは許容誤差です。小さくすればするほど精度は上がりますがそれだけループを繰り返すということを念頭に入れてください。ニュートン法では一階微分が必要ですが微分形が求まらない場合微分の代わりにその点を含むある区間での傾きが使えます。
実装例としては
functio df(x as double)as double
dim h as double
dim k1 as double
dim k2 as double
dim k3 as double
dim k4 as double
rem 適当な範囲
h=1.0
k1=f(x)
k2=f(x+h/2*k1)
k3=f(x+h/2*k2)
k4=f(x+h*k3)
df=(k1+2*k2+2*k3+k4)/6
end function
こんな感じでどうでしょう。
参考URL:http://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5% …
No.4
- 回答日時:
>求めたいyの値をすぐに知りたいです。
>データ量が膨大にあります。
それならばマクロを書くとよいでしょう。
yの値を挟み込むxを2つ(x1およびx2)決めます。
まず、x=(x1+x2)/2を代入して、求めたいyが左右どちらにあるかを判断します。
求めたいyが左にあるときは、x=(x1+(x1+x2)/2)/2を代入します。
求めたいyが右にあるときは、x=((x1+x2)/2+x2)/2を代入します。
これを繰り返し、誤差が一定の範囲になったときに終了します。
所望の分解能がエクセルの分解能を超えると解が振動します。その部分に気を付ければ単純なループ計算になると思われます。
No.3
- 回答日時:
こんにちは。
さて、エクセルの「ゴールシーク」がつかえるのでは?
エクセルが認識できる関数であれば、
目標値(Y)に収束する近似値を導いてくれます。
以下の、サイトをご参照ください。
もし見当違いだったらごめんなさい。
参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/mous_ …
この回答へのお礼
お礼日時:2006/01/28 20:55
回答ありがとうございます。
やってみたのですが、多分できないです。工夫すればできするかもしれませんが・・・
変数が1つじゃないとできないですよね?
No.1
- 回答日時:
逆関数は難しそうですね。
やはり数値解析を使用しなければならないような気がします。一例(とっさの思いつき):
A1:値、A2:値、A3:値
A4:t1の値、A5:t2の値、A6:t3の値
B列:xの値
C列:A列の絶対参照+B列の相対参照によるyの式
定数が決定したら、グラフ(Grapher等を利用)を使用して概ねのxを求めます(振動しないようです)。
分解能に応じて増分を決定し、xの値をB列にフィルします。
yの値と調和するxの値を求めます。
(マクロ化することもできそうです)
以上、疲れた脳みそに思い浮かんだことを書きましたが実際には作っていません(起きて時間があったらやってみますが、それまでにどなたかがもっと賢い方法を見つけてくれるでしょう)。
この回答へのお礼
お礼日時:2006/01/28 06:53
回答ありがとうございます。
グラフをみる方法は最終手段として考えていました。でも面倒くさいなぁって・・・
A1からA6の値を決め、xの値を指定したら、求めたいyの値をすぐに知りたいです。
データ量が膨大にあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
検便についてです。 便は取れた...
-
首吊りどこ締めるの
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
2つの数値のうち、数値が小さい...
-
リンク先のファイルを開かなく...
-
Excel 数値の前の「 ' 」を一括...
-
エクセルで数式の答えを数値と...
-
腕を見たら黄色くなってる部分...
-
【Excelで「正弦波」のグラフを...
-
EXCELで条件付き書式で空白セル...
-
MIN関数で空白セルを無視したい...
-
検便を取ったのですが、棒から...
-
excelのIF関数 A,Bの大きいほ...
-
一番多く表示のある値(文字列...
-
小数点以下を繰り上げたものを...
-
エクセルのラベルの値(文字列...
-
ワードのページ番号をもっと下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報