• ベストアンサー

Mathematicaのプログラム

Mathematicaの以下のプログラムでエラーがでてしまうのですが どこが間違っているのか教えてほしいです f[x_]:=x g[x_,y_]:=Integrate[f[x+y],x] Plot3D[g[x,y],{x,-3,3},{y,-3,3},PlotPoints->200] やりたいことはf(x)=xとしてf(x+y)をxで不定積分しその結果を変数x,yの2変数関数g(x,y)としてPlot3Dで表示したいのですが

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

  • ベストアンサー
  • tsukita
  • ベストアンサー率50% (41/82)
回答No.1

こんにちは。 Mathematicaをからは離れたので、参考意見程度になってしまうのですが・・・ まず、不定積分なので積分定数を考慮しないといけないと思うのですが、Mathematicaでは積分定数はどう処理されるのでしょう? また、やりたいことが >やりたいことはf(x)=xとしてf(x+y)をxで不定積分 と具体的にあるのなら、不定積分後の原始関数を手計算して、 その式に関してプロットすればいいのではないでしょうか。

jkallnight
質問者

補足

回答ありがとうございます 確かに今の場合被積分関数が簡単なので手計算で積分し、その結果をプロットすれば出来ます。ただ私が最終的にやりたいことが、手計算で積分できない解析的に解けない場合に、数値計算で2次元プロットすることなので、まず、簡単な例としてこのやりかたでやりたいです

その他の回答 (2)

  • tsukita
  • ベストアンサー率50% (41/82)
回答No.3

>確かに今の場合被積分関数が簡単なので手計算で積分し、その結果をプロットすれば出来ます。ただ私が最終的にやりたいことが、手計算で積分できない解析的に解けない場合に、数値計算で2次元プロットすることなので、まず、簡単な例としてこのやりかたでやりたいです プログラミングでは、基本が大事ですので、その考え方よくわかります。では、もう少しプログラミングの観点から調べてみませんか? 例えば、 f[x_]:=x の後に、 f[2]やf[-1]と入力してみて、きちんと値が出力されますか? 同様に、 g[x_,y_]:=Integrate[f[x+y],x] の後に、 g[0,0]やg[1,1]と入力してみて、きちんと値が出力されますか? また、エラーがでてしまったということですが、 エラーメッセージにヒントはありませんか?

  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

Mathematicaは持ってませんが、不定積分結果は、積分定数を無視すれば x*y*(x+y)/2 なので、その式で直接3Dグラフを描いてはいかがでしょうか。Mapleでの結果は添付図のようになります。

関連するQ&A

  • mathematica 2変数関数

    mathematicaで2変数関数f(x,y)を定義し、PLot3Dで表示したいのですが x=y=0の時のみf(x,y)=0 x=y=0以外はf(x,y)=g(x,y) (g(x,y)は全領域で予め定義されている) f[x_,y_]:=0;/x=y=0 f[x_,y_]:=g(x,y);/x=y!=0 Plot3D[f[x,y],・・・] とするとエラーがでてしまいますどうしたらいいでしょうか

  • mathematicaの積分

    mathematicaの積分で Integrate[f[x],x]+Integrate[g[x],x] を Integrate[f[x]+g[x],x] にするにはどうすればいいでしょうか。 お願いします。 Simplifyでもやってくれません。

  • Mathematica で2元4次連立方程式を解くには・・・

    教えて下さい! 2元4次連立方程式{f(x,y)=0, g(x,y)=0} (関数fとgはxとyの4次方程式です。)について、 例えば、[x,-10,10]のような限定された範囲で 実数解(x,y)を Mathematicaを使って、30桁精度で数値的に求め、 それをx,yの2次元プロットしたいと思っております。 Mathematica のどのような関数を組み合わせれば これができるか、ご教示下さいませんでしょうか? よろしくお願いいたします。 (自分でC言語でプログラムした場合、解けるには解け るのですが、有効数字の桁数が十分でなく、部分的に 数値が丸まってしまい、プロットがとぎれてしまう問題 があったので、有効数字を自在に調節できるMathematica でやってみようと思ったのですが、例えば、安直に Plot[N[Solve[{f == 0, g == 0}], 30], {x, -10, 10, 0.01}] としてもダメでした。NRootなども検討しましたがうまく 行きません。)

  • mathematica

    mathematicaで以下のような計算をしたいと思っています。 目標:y=f(x)がありy=1のときのxの値が知りたい そこで自分は逆関数を求めてからその式に1を代入して求めようと考えたのですがmathematicaで逆関数を求めるのはどのようにすればよいのでしょうか? もうひとつの解法としてシンプルに1=f(x)を解こうと試みてsolveを使ったのですが自分が今使おうとしているf(x)は中に積分が入っていたりと複雑なせいか、solveでは解けないと返ってきました。 上記のどちらでも構わないのでmathematicaで目標を求めるにはどのようにすればいいのでしょうか。よろしくお願い致します。

  • Mathematicaにおける関数定義と部分積分

    Mathematicaにおける関数定義と部分積分 u[t_,x_]:=u[t,x] のように定義し、 u[t,x]に0を代入した場合、 u[t,l]の計算結果が0になってほしいのですが、 u[t,l]となってしまいます。 /.u[t,x]->0 とした場合に、u[t,x]の項だけでなく、u[t,l]の項も0になってほしいのです。 どのようにすれば、所望の動作をさせることができますか? また、Integrate[f[x]*g[x],{x,0,l}]で部分積分を実行したいのですが、 Mathematicaはやってくれません。 関数形のまま扱い、任意の回数部分積分を実行したいのです。 やはり、自分で関数を作るしなかないのでしょうか? 何かヒントがあれば、教えていただければ幸いです。 よろしくお願いいたします。

  • Mathematicaの積分について

    Mathematicaを使って定積分を求めたいのですが、以下の入力では積分値を数値で返してくれません。どうしてでしょうか?原因と解決策を教えてください。 In:Integrate[1/Exp[Sqrt[x^2 + 1^2]], {x, 0, 1}] よろしくお願いします。

  • mathematica

    mathematicaのビギナーです。 f[x_,a_]:=a*Sin[x]; a10=Plot[f[u,10],{u,0,3}]; a20=Plot[f[u,20],{u,0,3}]; のように定義して、これらの関数をShowコマンドで Show[a10,a20] のように、一つのグラフで二つの関数を描いたときに、これらの関数の名前を図中にそれぞれ表示させたいです。いろいろ探したところ、optionでPlotLabelというのがあり、 a10=Plot[f[u,10],{u,0,3},PlotLavel->"a10"]; a20=Plot[f[u,20],{u,0,3},PlotLavel->"a20"]; として Show[a10,a20] とやってみたのですが、関数の名前は同時に表示されませんでした。 ご存知の方教えていただけないでしょうか?よろしくお願いします。

  • Mathematicaでの3D散布図

    Mathematicaで3D散布図を描画しようとしています. Show内で,Graphics3D[Point[{x1,y1,z1}]],Graphics3D[Point[{x2,y2,z2}]],・・・というように,1プロットずつ記述しています. このとき,データごとにプロットの形状を”●”,”▲”,”■”などのように変更することは出来ますか? PlotMarkesrを使用することで,出来そうなのですが,Graphics3D内でPlotMarkersを記述するとエラーではじかれてしまいます. PlotMarkersはListPlotなどの関数じゃないと,使用出来ないのでしょうか? 公式サイトのヘルプは充実しているのですが,イマイチ分かりません. よろしくお願いします.

  • Mathematicaでの等高線

    お世話になります. Mathematicaという数式処理ソフトで3D散布図に等高線を入れる方法を教えてください. 3D散布図のX,Y,Zの数値データは下記のようにcsv形式で手元にあります.  X Y Z  1 1 1  1 1 2  ・ ・ ・  ・ ・ ・  ・ ・ ・ Show関数と,Graphics3D関数を使用して1データごとにプロットして3D散布図を作成しています. 出来上がった散布図のグラフに対して,等高線を追加したいのですが,その方法が分からずに困っています. 方法をご存知の方は,ご教授頂けましたら幸いです. よろしくお願いします.

  • ループしている積分の解き方

    題では分かりにくいかもしれませんが、周回積分ではありません。 ある関数f(x,y)を求める時に、次の式が与えられています。 f(x,y)=a∫{bz/f(x,y)^2}dz ただし、a,b,cは定数 この積分はcから0までの定積分です。 通常の積分とは異なり、f(x,y)の計算結果を 積分区間内に入れて計算する必要がある為、説き方が全く分かりません。 解き方に手段は問いません。 Mathematicaとかを使ってもいいです。大体の近似だけでもいいです。 ただ、プロット後の近似曲線だけはダメです。 どんな些細なヒントやアイデアでもいいです。 何か思いついた事や知っている事があればよろしくお願いします。