• 締切済み

Mathematica Interpolation

私はMathematica 6.0 を使用しています。 MathamaticaのInterpolationについて質問です。 以下のような三次元のデータ(例えば{x座標、y座標、水深})があります。 data={{1,1,50},{1,2,40},{1,3,60},{2,1,30},{2,3,50},{3,1,30},{3,2,60},{3,3,40}}; このdataを補完し、自分が得たい座標({x,y}={2,2})を入力すれば、 そこの水深(z)がわかるようにしたいのですがいい方法がわかりません。 単純に Interpolation[data]としても ”座標が構造上テンソル積グリッド上にありません”とかえってきます。 どなたか良い方法をご存じでしょうか? よろしくお願いします。

みんなの回答

回答No.4

f = Interpolation[data, InterpolationOrder -> All] では、うまくいかないでしょうか? 私はMathematica9をつかっていますが、InterpolationOrderはV6でつかえると思います。 なお、エラーメッセージは、Mathematicaのバージョンにより、若干ことなることがあるようです。

全文を見る
すると、全ての回答が全文表示されます。
  • boson
  • ベストアンサー率59% (44/74)
回答No.3

エラーメッセージは省略しないで描くと 「Interpolation::indim: 座標が構造化テンソル積格子上にありません.」 ではありませんでしたか? 「Interpolation::indim」の項目を見ると http://reference.wolfram.com/legacy/v5/Built-inFunctions/WarningMessages/NumericalComputation/DataManipulation/Interpolationindim.ja.html ■多次元データのための格子は正方形である必要はなく,また格子の線は等間隔である必要もないが,データポイントは規則正しい格子に載らなければならない. とあります。つまり、この例では 「格子点{2,2}でのデータが欠落しているので補間ができない」 ということのようです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

{2,2}のデータが欠落すると補間がうまくいかないのはなぜかわかりませんが、、、、 応急措置として、もしも理論的なモデル関数が分かっているとか、あるいはスムーズな変化しかしないとわかっているとかでしたら、フィッティングで代替するのはどうでしょうか。 次のやつはx,yで分離した多項式でやってみました。(x,y分離はこの場合はあまりうまくいかないようですが。簡単のため) data = {{1, 1, 50}, {1, 2, 40}, {1, 3, 60}, {2, 1, 30}, {2, 3, 50}, {3, 1, 30}, {3, 2, 60}, {3, 3, 40}}; ListPlot3D[data] fitFunc = (a x^2 + b x + c)*(d y^2 + e y + f); fitSol = FindFit[data, fitFunc, {a, b, c, d, e, f}, {x, y}] fitFunc /. fitSol /. {x -> 2, y -> 2} Plot3D[fitFunc /. fitSol, {x, 1, 3}, {y, 1, 3}]

全文を見る
すると、全ての回答が全文表示されます。
  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

Mathematica葉使ったことはありませんが、一般論として z=ax+by+c とおいて最小二乗法でデータからa,b,cを決めればよいと思います。 2次まで使うのであれば z=ax^2+bxy+cy^2+dx+ey+f として、最小二乗法でa,b,c,d,e,fを決定すればよいでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • mathematicaを利用して解きたいのですが

    曲線y=x^2(x-3)(2x+3)の内側に共に半径が1.5で、曲線と2点で接する2つの円のそれぞれの中心の座標と、曲線との接点を求めたいのですが、mathematica初心者なのでどのような入力をすればよいのか分かりません。 よろしくお願いします。

  • mathematicaに詳しい方お願いします!

     有限要素法のシミュレーションで、座標とその点での磁場の強さをリストにしました。こんなかんじです↓ points = {{x1,y1,z1},{x2,y2,z2},{x3,y3,z3},......} x,y : 座標 z : その点での磁場の強さ  ここから磁場の等高線を描くことができなくて困っています。上のようなリスト形式から描かなくても、磁場の強さとその位置が反映された等高線が描ければ良いのでmathematicaに詳しい方、よろしくお願いします!

  • mathematicaのグラフの軸

    mathematicaで3次元プロット(x、y、z)をしたのですが、z軸だけメモリの間隔が狭くなってしまいます。 範囲はx、y、z軸どれも-500~500なんですが、z軸だけつぶれて表示されてしまい、たとえば球が楕円球のように見えてしまいます。 とても見にくいです。 メモリの間隔を何とかx、yと同じようにはできないでしょうか? どなたか詳しい方がいらっしゃいましたらお教えください。

  • Mathematicaで極座標表示の式を直交座標表示にしたい

    Mathematicaで極座標表示で出した式を直交座標表示(x,y,z)に書き直したいのですが、r=Sqrt(x^2+y^2+z^2)のように一つの変数を複数の変数に書き直すのがうまくいきません。 どうすればできるのでしょうか?

  • 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で不等式領域

    mathematica4で不等式(x>0, 3x+y>0,xy>0, etc..)をみたす領域を図示する方法を教えてください. Mathematica 4で無理ならMatlabあるいはフリーソフトで簡単にできるものがあれば教えていただけると助かります.

  • mathematicaでわからない問題があるのです

    2変量のデータ {{x1, y1}, {x2, y2}, ... , {xn, yn}} を引数として,散布図と相関係数を出力する関数を作成せよ. mathematicaの演習問題なのですが、解答がなく、どのようにして解けばいいかわかりません。解答例を示していただければ幸いです。

  • Mathematicaでの等高線

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

  • 大学 物理に詳しい方教えてください。

    半径aの二次元球面空間に対して、極座標系(θ、φ)を用いた際の計量テンソルを求め、この空間のリーマン曲率テンソルとスカラー曲率を求めよ。 ただし極座標系は          x=a・cosφsinθ                                                                y=a・sinφsinθ          z=a・cosθ とする。

  • Mathematicaで条件を変えてプロット

    Mathematicaで y(x) = ax + b といった式をaとbの条件を変えて同じグラフにプロットするにはどうしたらいいのでしょうか? 例えば、a=1 b=2、a=2 b=3についてそれぞれプロットするには y1(x) = x + 2 y2(x) = 2x + 3 とそれぞれ定義して同じグラフにプロットすることは出来るのですが、 条件が多い場合、また式が煩雑な場合となると大変になるので 簡単にする方法があれば教えていただきたいです。

WRC-1750GST2 Wi-Fiが繋がらない
このQ&Aのポイント
  • WRC-1750GST2のWi-Fi接続に問題が発生しました。リセットや再起動を試しても一時的には接続できますが、数分後に再び切断されます。購入してから2年程度経っており、新しい機器を購入するか迷っています。他に試すべき方法はあるでしょうか。
  • WRC-1750GST2のWi-Fi接続に問題が発生しており、繋がりが不安定です。一度は接続できますが、数分後に再び切断される状況です。購入から2年ほど経っており、新しい機器を検討しています。解決策や改善方法があれば教えてください。
  • WRC-1750GST2のWi-Fi接続に問題があります。リセットや再起動を試しましたが、一時的には接続できますが、数分後に切断されます。IDとパスワードの入力画面が表示されるものの、接続できません。購入してから2年弱経っており、新しい機器を購入するか迷っています。他に助言や解決策があれば教えてください。
回答を見る