• 締切済み

Excel VBAのグラフ化に関する相談

元の式を多少簡略下したかたちなのですが、 f(x) = ∫(500~x)[(1/(sqrt(y-x))*f(y) - (1/(sqrt(y-x))*df(y)/dy]dy f(y) = 実験的に求めた数値でしか分かっていない関数(B1~B2000にあるとします。) 上記のf(x)をExcelでグラフ化したいと考えています。 Y-xが分母にあるので発散するような気もしますが、引き算になっているので打ち消し合って有限の値を持つと思います。 f(y)は決まった関数ではなく実験的に求めれらた離散的な値であるため、数値積分するしかないのですが 何とかセル上でSumProductなどを使ってグラフ化しようと試みたのですが、 かなりややこしいことになってしまい、どうしてもうまくいきませんでした。 従ってVBAを使ってグラフ化したいと考えているのですが、VBAを今まで使ったことがありません。 従って、どなたか見本を見せて頂けないでしょうか? よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

エクセルVBAは、エクセルで人手でも操作を時間をかけてやれば出来るものを、プログラム実行の速さで行えるものです。 操作さえ存在しない、ものはVBAで何か旨く出来ると思うのは幻想(過大期待)でしょう。 ーー エクセルはまず、数値データありきーー>それをグラフ化するものです。数学式ーー>データ作製ーー>グラフ化を自動でするものではない。折れ線グラフも、離散的な点を結ぶグラフです。 (世の中には数学式ーー>データ作製ー>グラフ化をすると謳うソフトも有る) その点で、質問では、データありき、なのでよいのですが、グラフを描かせれば、何かのカタチが現れるでしょう。 ーー しかしそれから、式や数学式や、まして微分・積分方程式などを決める方法は、エクセルの機能に有るはずがありません。 やっと漸近式・近似曲線が求まるくらいで、漸近式は人間が、1次式や2次式や指数関数式など、学識から判断する必要のあるものです。 ーー エクセルはアドインというカタチでプログラムを作り 画面表示(=アウトプット) データ保持(インプットデータの目に見える形で保持) その他関数機能 のためにだけ、エクセルの機能を使うことにすれば、VB6でプログラムを組める計算内容なら、組めると思うので、数学の高等な処理も達人にかかると、出来る可能性はないとはいえない。 しかしこの域になるとエクセルの課題といえない。手近だからあるものを使ったに過ぎない。 ーー こんな事務系のオフィスの質問の多いカテに、またこんなコーナーに質問しないで、数学、物理学などのカテか、学術の専門のコーナーに質問するのが筋ではないかと思う。 何を質問しても良いといいながら、また現実には、ほとんどないが、大學生の研究レベル・大学院生の課題などは、事実上ここの対象範囲じゃないと思う。 また学生の宿題の回答質問は、規約で遠慮するべきことになっているはず。 ーーー dyなどが増分を表すなら、そのように説明し、質問すべきです。 シグマも集積の足し算を意味するなら別の表現が有るでしょう。 データの計算の質問なのか グラフ化の質問なのか グラフに近い数式を探そうとしているのか もはっきりしない。

  • uza
  • ベストアンサー率0% (0/0)
回答No.1

http://pc11.2ch.net/test/read.cgi/bsoft/1226470880/460 既に質問されているようですね 投稿前の注意書きに "誰かの書いたものをそのまま転記するなどの著作権の侵害" とありますように、自分の書いた文章でも著作権の侵害に当たりますので 今、あなたは犯罪者ですよ。 お気をつけ下さい。

参考URL:
http://pc11.2ch.net/test/read.cgi/bsoft/1226470880/460

関連するQ&A

  • ややこしいグラフ作成に関してアドバイスを下さい。

    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というところはやはり気になるのですが、こうしないと計算値が発散してしまうために、 計算してくれません。ここがもっとも気になっている部分なのですが、 どなたかアドバイスお願いいたします。

  • Excelについて(グラフ作成)

    Excelでグラフを作成するときに、 例えば、x軸をA列の値、y軸をB列の値にしたいのなら2列を選択して グラフは簡単にできるのですが、それでは x軸をA列の値、y軸はある関数の値(例えばB1に入っているy=2*xのyの値)にしたいときはどうすれば良いのでしょうか? 分りやすくいうと、A列には1行目から 0 、2 、 4 、 6 、 8 、 10 、 12 ・・・・・ B1に、y = 2 * xが入っていてここから x=0 のとき y=0 x=2 のとき y=4 x=4 のとき y=8 x=6 のとき y=12 x=8 のとき y=16 x=10 のとき y=20 よりグラフを作りたいのです。 よろしくお願いします。

  • Excelでグラフを書く

    Δy=f(x,y)Δxのグラフを書きたいのですが、わかりません。 Δy=f(x)Δxのグラフは、何とか書けました。 あまりExcelの知識がないので無理矢理書いた感じです。 シートにx、Δx、y、Δyのそれぞれの列を作り、xに対してのyの値を求めて、グラフにする。 xはΔxを決めれば、決まる。yは、Δy(=f(x)Δx)が求めれればわかる。 この方法だと、f(x)がf(x,y)になるとyが求まっていないので、できなくなってしまいました。 Δy=f(x,y)Δxを積分できる場合は、問題なくできるが、一般的にどんな式の場合でもできるようにしたいです。 今やろうとしてるのは、 Δy={y*(1-x)+(1-y)*x}*Δx です。 これが、できたらもっと複雑な関数(指数・対数など)もしたいです。 お願いします。

  • エクセル2003 グラフについて

    実験結果より作成したグラフ(Y軸、上に凸の形状)について質問です。 1.X軸の値が「整数0~75」までとってあり、グラフを自動作成すると、数値が2段になり非常に見づらいです。グラフの形状を変えず、X軸のメモリを任意の数値刻みにするのはどうしたら良いですか? 2.Y軸最大値の所からX軸、Y軸に垂線を引き、そこの数値のみ太字、赤字にするのはどうしたらよいでしょうか? 簡単ですが、グラフをキャプチャーして画像加工で理想を示してみました。 分かる方居りましたらよろしくお願いします

  • 関数のグラフについて‥‥

    y=Sqrt(1-x) 【Sqrt:√】 という関数のグラフを書くとき、漸近線はx=1の1本だけでしょうか?

  • 平面上のグラフの傾き

    2変数関数 F(x,y) = 0 のxy平面におけるグラフの傾きは dy/dx = -Fx(x,y)/Fy(x,y)とあるのですが、これはどのように導かれたものなのでしょうか?

  • エクセルでグラフを!!

    エクセルでy=x^2とかy=10^xなどの関数グラフを書きたいのですが、どのようにすればよいのでしょうか? 一定間隔で値をセルに入力してグラフにする方法ではなく、スマートに作りたいです。ひょっとしてマクロで作るしかないんですかね?

  • 連続関数とそのグラフ

    f(x)=lim(x^(2n-1)+x^2+ax+b)/x^(2n)+1 n→∞ が連続関数であるとき (1)定数a,bの値を求めよ。 (2)関数y=f(x)のグラフの概形をかけ。

  • だれはこの式を証明してもらいませんか

    数学式はf(x,y)=sqrt(1+(y')^2)です。 誰がf(x,y)/dxdy'-f(x,y)/dy=(y'/sqrt(1+(y')^2))/dxを証明してもらいますか? ここでy'はyの導関数です。 私は手を尽くしても、全然できない。                                                                                                                                                                                                                                                                                                             

  • 3次元グラフ

    実験から得た3つの変数のデータ(x,y,z)をgnuplotに入力して3次元のグラフを作ったのですが、そのグラフのz=f(x,y)の近似関数を知りたいです。どうすればよいのでしょうか? gnuplotを使ったことがなくて全く分かりません。 宜しくお願いします。

専門家に質問してみよう