- 締切済み
ややこしいグラフ作成に関してアドバイスを下さい。
f(x) = ∫(500~x)[(1+(1/(sqrt(y-x)))*f(y) - (1/(sqrt(y-x))*df(y)/dy]dy f(y) = 実験的に求めた数値でしか分かっていない関数(C13~C2013にあるとします。) B13~B2013にはC13~C2013に対応したxの値が入っています。 上記のf(x)を横軸をx、縦軸をf(x)としてExcel VBAでグラフ化したいと考えています。 そこでD13~D2013のセルにf(x)の計算式を入力し、グラフ化したいと考えています。 Function Caly(s) Caly = Range("C" & s) End Function Function Calx(z) Calx = 0 For i = 13 To (z.Row - 1) Element = Range("B13") - Range("B14") t = Range("B" & i) Calx = Calx + (Element * ((1 + (1 / (8 * Sqr((t - z))))) * Caly(i) - ((1 / Sqr((t - z))) * ((Caly(i) - Caly(i + 1)) / Element)))) Next End Function 上記のように自分なりに考えて作成してみたのですが、確かに計算自体はされるのですが、 思ったようなグラフになりませんでした。 予想されるものと比べて、f(x)のオーダー自体も10桁くらい大きく、全く違うグラフしか作成されませんでした。 上記のアルゴリズムのどこが間違えていますでしょうか? z.Row - 1というところはやはり気になるのですが、こうしないと計算値が発散してしまうために、 計算してくれません。ここがもっとも気になっている部分なのですが、 どなたかアドバイスお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
ここはエクセルの、どちらかというと文系の質問が多い。 操作や関数などが中心。 この質問の、こういうのはエクセルのカテでなく、理系の数学や物理・工学などのカテに質問すべきだと思う。 式も意味がわからない。8など突然出ているが判らない。 シグマ(インテグラル)の記号で表すのでなく、総和とか合計、dxは増分とかで説明すべきでしょう。 f(y)も突然出てきて、関連が説明されてない。 初期値、増分Δx(は連続データの作成)、式のカタチが判ればF(x) の計算しかないので質問することはないはず。 そしてセルの列と行で言えばどうなるのか。 読者回答者が質問者と同じ課題をいつも考えているわけではない。 VBAなど後の話でよい。 出てきたグラフがおかしいといっても式の適否までは普通は関係者しかわからない。 (1)まずセルにXの値と、対応するf(x)の値を作る。 そのときどういう関数や数式になるか考える。 VBAでの式も関数式を置き換えた書き換え程度で出来るでしょう。 (2)データが出来たら、グラフを描くマクロは、マクロの記録をとれば、コードはすぐ判る。 2つを切り分けて質問すること。 ーー (1)の時の式の適否は、特にこの説明では判らない。他のカテに質問すること。 f(Y)はこの質問の計算では所与の定数(数値)ではないのか。関数記号など使わず、シンプルな説明をするべきだと思う。 ーー 質問カテゴリの再考 説明の表現の工夫 を望む。