• 締切済み

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

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

みんなの回答

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

ここはエクセルの、どちらかというと文系の質問が多い。 操作や関数などが中心。 この質問の、こういうのはエクセルのカテでなく、理系の数学や物理・工学などのカテに質問すべきだと思う。 式も意味がわからない。8など突然出ているが判らない。 シグマ(インテグラル)の記号で表すのでなく、総和とか合計、dxは増分とかで説明すべきでしょう。 f(y)も突然出てきて、関連が説明されてない。 初期値、増分Δx(は連続データの作成)、式のカタチが判ればF(x) の計算しかないので質問することはないはず。 そしてセルの列と行で言えばどうなるのか。 読者回答者が質問者と同じ課題をいつも考えているわけではない。 VBAなど後の話でよい。 出てきたグラフがおかしいといっても式の適否までは普通は関係者しかわからない。 (1)まずセルにXの値と、対応するf(x)の値を作る。 そのときどういう関数や数式になるか考える。 VBAでの式も関数式を置き換えた書き換え程度で出来るでしょう。 (2)データが出来たら、グラフを描くマクロは、マクロの記録をとれば、コードはすぐ判る。 2つを切り分けて質問すること。 ーー (1)の時の式の適否は、特にこの説明では判らない。他のカテに質問すること。 f(Y)はこの質問の計算では所与の定数(数値)ではないのか。関数記号など使わず、シンプルな説明をするべきだと思う。 ーー 質問カテゴリの再考 説明の表現の工夫 を望む。

関連するQ&A

  • 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を今まで使ったことがありません。 従って、どなたか見本を見せて頂けないでしょうか? よろしくお願い致します。

  • 数学についての質問です。

    2つのグラフ X+5y=19 と x+5=y^2 間の面積を求めよという問題で。 ∫[a,b]f(x)dx + ∫[b,c]g(x)dx (a<b<c) の形にして問題を解いていたのですが、 ∫[-5,4]f(x)dx + ∫[4,59]g(x)dx f(x)=sqrt(x+5)-(-sqrt(x+5))までできたのですが、g(x)の式の出し方がわかりません。 また、 ∫[-8,3](-y^2-5y+24)dyの形にして、解いてみて出た答えが、575/6だったのですが上記が解けないので確かめることができません。

  • 4次多項式のグラフ

    4次多項式のグラフをEXCELで書く問題で困っています。 式と完成したグラフはあるのですが、なぜこのグラフになるのか分かりません。 式:F(t)=t^4/4-2*t^3+11*t^2/3-6*t グラフ:y軸が-100~900まで100目盛りづつ、x軸は0~10まで1目盛りづつ グラフにはF(t)とf(t)、2つのグラフがあります。 F(t)は式が与えられているのでなぜこのグラフになるのか理解できますが、f(t)は式もないしなぜこのグラフになるのかわかりません。 f(t)はF(t)のy軸と同じ値(0)から始まりy軸の200辺りで収まっています。 F(t)を計算すると F(t) x軸 0→y軸 0 x軸 1→y軸 -4.0833 x軸 2→y軸 -9.3333 x軸 3→y軸 -18.75 x軸 4→y軸 -29.333 x軸 5→y軸 -32.083 x軸 6→y軸 -12 x軸 7→y軸 51.916 x軸 8→y軸 186.66 x軸 9→y軸 425.25 x軸10→y軸 806.66 になります。 数学は得意ではないので説明が分かりにくいですが、よろしくお願いいたします。

  • グラフ作成

    グラフ作成のマクロを作りたくて、マクロの記憶を用いて試してみたのですが、うまくいかないので、もしよろしければおしえてください。 選択範囲をアルファベットを用いたものではなく、cells(k,i)で表したいと思っています。 <マクロ> Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("元データ").Range( _ "A1:B1,A927:B987,Y1:Z1,Y927:Z987"), PlotBy:=xlColumns ’←このグラフ範囲をcells(,)の形式にしたい。 ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3" どうぞよろしくお願いします。

  • グラフ作成

    下記のような点0からGのX-Y座標データから x-y座標に点で座標点を打つようなグラフはどのような操作をすればいいのでしょう。 座標 x y O 0 0 A 4 8 B 5 2 C 6 5 D 3 1 E 2 6 F 1 4 G 4 4 O 0 0

  • ルートを含む連立方程式に関して

    こんにちは. 数学の問題を質問させてください. 分母にルートを含む連立方程式の解き方を悩んでいます. 次の3つの連立方程式で変数はx,y,zの3つでA,B,C,Pは任意の定数です. 1/{P+sqrt(x^2+y^2+z^2)}+1/{P+sqrt((x-1)^2+y^2+z^2)}=A 1/{P+sqrt((x+2)^2+y^2+z^2)}+1/{P+sqrt((x+1)^2+y^2+z^2)}=B 1/{P+sqrt(x^2+(y-2)^2+z^2)}+1/{P+sqrt((x-1)^2+(y-2)^2+z^2)}=C MaximaやMathematicaなどのソフトを使って,このまま計算させると常に「実行中」となり,解が求まりません. 手計算である程度,式を簡単にしようと式変形を試したのですが,有理化することもできず,ルートが計算の邪魔をします. このような連立方程式はどのように解けばいいのでしょうか? どなたか解法の手順をご存知の方がおられましたら,教えてください.

  • エクセル データ分析 個数積立グラフ

    2つのデータから、目標のグラフを作りたいと考えています。 データ1(A列)が、A、B、C、D、E、F、G、、、、、の複数種類の文字列 データ2(B列)が、3種類のデータ(X、Y、Z)の数値がそれぞれ、バラバラに入っています。 そこで、 Aのとき、Xが何個、Yが何個、Zが何個。 Bのとき、Xが何個、Yが何個、Zが何個。 Cのとき、Xが何個、Yが何個、Zが何個。 ・・・・ といったグラフを作成したいと考えています。 具体的には、横軸にデータ1、縦軸に、データ2(色分けして積み立てたもの)が来るようなグラフを作るのが目標です。 この場合の作成手順を、アドバイス頂ければ助かります。 宜しくお願いいたします。

  • c言語

    c言語で写真の課題を出されたのですが自分のプログラムでは上手くいきません。どこが間違っているのか教えて欲しいです。 自分のプログラム #include<stdio.h> #include<math.h> int main(){ int i,j; double c,d,x,y,z; for(i=0;i<=360;i++){ c=10*cos(i*M_PI/180); d=10*sin(i*M_PI/180); if(c>=0 && d>=0){ for(j=0;j<=1000;j++){ x=0.001*j; y =x*d/c; z=1-x*x-(sqrt(x)+y)*(sqrt(x)+y); if(z<=0.0){break;} } } if(c<=0 && d>=0){ for(j=0;j<=1000;j++){ x=-0.001*j; y=x*d/c; z=1-x*x-(sqrt(-x)+y)*(sqrt(-x)+y); if(z<=0.0){break;} } } if(c<=0 && d<=0){ for(j=0;j<=1000;j++){ x=-0.001*j; y=x*d/c; z=1-x*x-(sqrt(-x)+y)*(sqrt(-x)+y); if(z<=0.0){break;} } } if(c>=0 && d<=0){ for(j=0;j<=1000;j++){ x=0.001*j; y=x*d/c; z=1-x*x-(sqrt(x)+y)*(sqrt(x)+y); if(z<=0.0){break;} } } printf("x=%lf y=%lf z=%lf\n",x,y,z); } return(0); }

  • 平面スカラー場の線積分について

     x-y 平面上の領域 D で関数 f(x,y) が定義され、D 内にある平面曲線 C を   x = x(t), y = y(t) (a ≦ t ≦ b) ・・・・・・・ (#0) で表わすとき、この「曲線 C に沿った線積分」を線素   ds = √(dx^2 + dy^2) = √( (dx/dt)^2 + (dy/dt)^2 ) dt を使って   ∫_C f(x,y) ds   = ∫[a,b] f( x(t),y(t) ) √( (dx/dt)^2 + (dy/dt)^2 ) dt ・・・・・・・ (#1) と定義する。  (#1)が「曲線 C に沿ってできる」x-y 平面に垂直なカーテン状の曲面の面積を表すことはわかりやすいのですが、ちょっとわかりにくいのが「曲線 C に沿ってできる x に関する」線積分   ∫_C f(x,y) dx = ∫[a,b] f( x(t),y(t) ) dx/dt dt ・・・・・・・ (#2) の定義です。もし、(#0) の曲線 C の y と x が一対一に対応していたら、(#2) の線積分は (#1) の曲面を x-z 平面に投影した図形の面積を表すと解釈してよいのでしょうか。  ベクトル解析の参考書を2冊持っているのですが、そんな説明はどちらの参考書にもないので心配なのです(笑)。

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

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