エクセル・ソルバーのエラーについて

このQ&Aのポイント
  • エクセル・ソルバーを使用していた場合に生じるエラーについて調査しました。
  • ソルバーを用いて算出した結果、一部のデータでエラーが発生しました。
  • エラーの原因と解決策についてアドバイスをお願いします。
回答を見る
  • ベストアンサー

エクセル・ソルバーのエラーについて

ガン細胞(正確に言うと、前骨髄性白血病細胞HL-60)を使った 活性試験の結果を算出する際に、 IC50を求めているのですが その過程でソルバーを使用していたところ エラーになってしまい、 何が問題なのか分からないので 質問させていただきます。 活性試験は、 吸光度570nmと595nmを測定した結果を元に、 増殖率を算出した後、 これをIC50を求めるのに使用しています。 IC50を求める際には、 サンプル濃度(式中ではXとしています)は それぞれ50、12.5、3.13、0.78ppmの4段階で、 yを増殖率(%)としています。 aとbを変化させるセルとしてもうけ、 最初は適当な正の値を入れています。 そして各数値を、それぞれ以下の式に入れ、計算していきます。 f(x)=100/{1+a*(x^b)} {y-f(x)}^2 {y-f(x)}^2の合計←ここで、aとbを変化させて、この値が最小となるようにする(Solver) 以上のような手順を踏むと 通常ならば IC50=a^(-1/b) が求められるのですが、 ソルバーを用いて算出したところ、 一部のデータで#DIV/0や#NUM のエラーが生じてしまいました。 エラーが出てしまった原因や 解決する手段があればぜひアドバイスよろしくお願いします。

  • 化学
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (7999/17101)
回答No.1

> エラーが出てしまった原因 aやbの値(とくにbの値)が期待している値と比べて大きすぎたり,小さすぎたりしている。 > 解決する手段 変数に制約条件を付ける。 変数の初期値を,それらしい値に変える。

empyema
質問者

お礼

変数の初期値を、 他のうまく計算できたデータをもとに それらしい数値を入力して 計算しなおしたところ 解を求めることができました!! ありがとうございました(^^)

関連するQ&A

  • エクセル ソルバーを教えてください

    今考えているのは、x,y座標上に2点を結ぶ直線があります。その二点の値は5500と3000で、二点のx,yはわかっていて、x,y座標は(0.3,0.5)と(0.44,0.40)です。 この二直線を内分して、5500,4500,4000,3600,3000というように分割しました。この4500,4000,3600のx,y値をソルバーで求めたいのですがどのようにすればいいのかわかりません。教えてください

  • エクセルのソルバーで出たfttingの信頼区間

    エクセルのソルバー機能を使ってfittingし最適な定数を見つけた後、その定数の標準偏差や95%信頼区間を出す方法はありませんか? たとえば、Y=EXP(-aX-bX^2)の場合、YとXの値をいくつか入力してソルバーを使うとaとbの値は出ますが、aとbの信頼区間を見るにはどうすればいいのでしょう。 どなたかよろしくお願いします。

  • エクセルのマクロでのソルバーの使い方に関して教えてください。

    エクセルのマクロでのソルバーの使い方に関して教えてください。 下記のようなソルバーを含むマクロを組んでいます。(一部です。) SolverReset SolverOk SetCell:="$B$10", MaxMinVal:=3, ValueOf:="0", ByChange:="$M$46" a = SolverSolve(True) If a = 0 Then SolverFinish KeepFinal:=1 Else SolverFinish KeepFinal:=0 End If ソルバーを起動させ、"B10"が0になるように計算させ、 ソルバーの返り値をaに入れます。このとき、a=0の場合は、つまり最適値を得た場合のみ, 解を保存したく、a=0の場合、SolverFinish KeepFinal:=1で、保存するようにしています。  しかし、実際は、a=0の場合でも解を保存してしまい、元の値に戻せていません。  最適値を得られなかった場合に、元の値に戻したい場合は、どのように記載すれば良いでしょうか?  よろしくお願いします。

  • エクセル解法

    数学のカテにこういう質問をするのは場違いかもしれませんが・・・ a=f(x,y,z) で与えられる3元1次式が3つあり、それぞれにa1,a2,a3が与えられている場合、 エクセルのソルバーでx,y,zを求めることはできますか? (x=○○○の形に展開することが極めて難しい) 概略手法も教えていただけると有難いです。 (わたしのPCには未だソルバーが入っていません)

  • エクセル ソルバーをつかった近似曲線

    いつも参考にさせてもらっています。 ソルバーを利用して近似曲線を作成したいです。 横軸を測定時間t(分)、縦軸を平均値Y(g)にして、 Y=A/(a-b)*{exp(-b*t)-exp(-a*t)} という式で近似したいと考えています。 測定時間tは  0、 5、10、15、 20 分 測定値Yは 700、1500、1600、1800、1900 g いろいろ参考にしてみましたが結局わからないままでした。 ご教授よろしくお願いいたします。

  • C/C++での最小二乗法について

    いつもお世話になっております。 初めての質問で不備があるかと思われますがよろしくお願いします。 現在Excelのソルバー機能で、測定した値とは別に 計算式f(x)で求めた推定値との残差二乗和((測定値-推定値)^2の和)から 計算式f(x)の変数a,bを算出しています。(変数a,bの初期値は適当な値を設定) このソルバーでの最小二乗法の計算をc/c++にて実装するにはどのようにすれば良いのでしょうか。 (ソルバー機能では目的値を残差二乗和、変化対象を変数a,bとし、準ニュートン法より最小値を求めています。) 御教授よろしくお願いします。

  • ソルバーの解が最適値を示さない

    タイトルの通り、エクセルのソルバー機能を使用してある反応の速度係数と算出しようとしたところ、フィッティングされません。 最小二乗法によりソルバーを動かすと添付図のように最適化条件を満たししていますと出るのですが、どう見てもあっていません。 ソルバー機能上このようになるのか、フィッティング関数の性質上このようになってしまうのかがわかりません。 どなたかこの症状に詳しい方がいらっしゃれば、ご教示いただきたいです。 下記想定で行っています 実験値セル:B3*exp(-B4*A6)*{1+RAND()/5} 計算値セル:C3*exp(-C4*A6) 残差:{(実験値セル)-(計算値セル)}^2 残差平方和:SUM(D列) ソルバー条件 目的セル:E6(残差平方和)を最小値 変数セル:C3:C4 制約なし(制約なしを非負数とするのみ)

  • 【エクセルVBA】「インデックスが有効範囲にありません」というエラーがでます

    こんにちは。VBA初心者ですが、下記コードを実行すると エラーが出てしまいました。 シート(シート1)のセルから別シート(シート2)のセルに 値のみコピーするVBAを組んでいます。 適宜、シート1に入力したものを読みこませていきたいので 変数を使用しています。 ------------------------------------------------------------- Sub セルのコピー() Dim X As Integer X = 3 Y = 2 Do While Cells(X, "A").Value <> "" Sheets("シート1").Cells(X, "A").Copy Sheets("シート2").Activate Sheets("シート2").Cells(Y, "F").PasteSpecial _ Paste:=xlPasteValues ⇒エラー対象 Application.CutCopyMode = False X = X + 1 Y = Y + 1 Loop End Sub ------------------------------------------------------------ つまり、シート1のA3セルを先頭にA4,A5,A6・・・と続くセルの値 をシート2のF2を先頭としたセル(以下、F3,F4・・・)に値のみコピー していきたいのですが。。 実行すると「インデックスが有効範囲にありません」というエラーが でます。デバック対象は上記、「⇒エラー対象」の構文です。 変数の設定の仕方がおかしいのでしょうか。。 ご教示のほどよろしくお願いいたします。

  • この方程式をエクセルで解くにはどうすればいいのですか?

    収束計算が必要と思われる下記の2つの方程式からX、Yを算出したいのですが、エクセルで式を作成する場合どうすればいいのでしょうか? どなたか、ご教示願います。 a*(X+b+c)=d*(X+Y) e/f*(g^2-f*h^2)*X=e*i^2*Y a=0.92 b=900 c=79.3 d=1 e=3.14 f=4 g=387.4 h=82.6 i=77.6 尚X、Yは計算機等で計算すると以下の数値となります。 X:174.1、Y:887.1 宜しくお願いします。

  • ExcelでGaussian fittingをしたいのですが、どうすれば良いですか?

    A1・・・A1001にx軸の値が B1・・・B1001にy軸の値が入っているとします。 このデータをグラフ化したのちに、ガウシアン関数y=a+b*exp(-(x-c)^2/d^2)に対してフィッティングを行い、それぞれの定数を算出及び、その算出されたグラフを上に乗せるということをしたいのですが、 Excel VBAを使ってどのようにすれば良いのでしょうか? また、ピークが1本ではなく2本ある場合Multipeak Gaussian fittingというものでそれぞれのピークに対してフィッティングすることもできるそうなのですが、できればその方法についても教えて頂けないでしょうか? 自分でひな形くらい作って質問したいところですが、全くどうやって作れば良いのか検討もつかないのでどなたかよろしくお願い致します。