• ベストアンサー

Mathematicaに関する質問

私は最近Mathematicaを使い始めました。一人で勉強するのに結構大変です。 さて、質問です。 f[x_] := Exp[-(0.713(x + 0.380) + Sin[2π( x - 0.184)])] の式を定義し場合、f[2]すると、答えは0.457628が出ます。 しかし、逆にf[x_]=0.457628にした場合、x値が2になるような計算をしたい場合はどうすればいいんですか? よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

No.1の補足に対する回答。 逆関数のことですね。 これは標準ライブラリに収録されているもの以外は独自に計算する必要があります。 f(x)の逆関数をf*(x)とするとき、次の等式が成り立ちます。 f(a)=bであるとき、 (f*)’(b) = 1/f’(a) この微分方程式を解けばx=f*(y)の式が求まるはずですが、解けるか解けないかはわかりません。 【追記】 数学カテゴリー方面に、逆関数の計算に詳しい方がいらっしゃると思うので、そちらで解けるかどうか評価してもらうといいでしょう。 なおこのカテゴリーで質問したけれども解決できなかった旨を上手に伝えないと、回答してもらえないと思います。ウルサイ人が多いですから…。

yoo7660
質問者

お礼

ご返事どうも有難うございました。 よくわかりました。 私が質問した式については、FindRoot関数を使って解決しました。

その他の回答 (1)

回答No.1

0.457628 = Exp[-(0.713(x + 0.380) + Sin[2π( x - 0.184)])] の方程式をxについて解けばいいのですが、一般には無理でしょう。

yoo7660
質問者

補足

どうも有難うございます。 InverseFunctionという機能ではできないんでしょうか?

関連するQ&A

  • mathematica

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

  • mathematicaでの計算

    mathematicaで微分演算子を含むハミルトニアンを独立に扱いたのですが,できるのでしょうか? 例えば,一次元調和振動子のハミルトニアンでしたら H=-d^2/dx^2+x^2 ですが,これを独立に扱って (H-E)^2*ψ などの計算をmathematicaで簡便に行いたいのですが(ここでψは簡単な指数関数,ψ=exp(-a*x^2) など),このような計算のプログラミングはどのようにすればできるのでしょうか?

  • 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で下記の二つの式をグラフで書きたいのですが、Mathematica初心者なものでいまいちわかりません。勉強するにも時間がないので焦っています。どうか分かる方おしえてください。 ・7x^2-22xy+7y^2=18 ・11x^2-14xy+11y^2=18

  • 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] とやってみたのですが、関数の名前は同時に表示されませんでした。 ご存知の方教えていただけないでしょうか?よろしくお願いします。

  • 複素フーリエ、実数形

    ・次の関数の複素形フーリエ級数を求めなさい。実数形に直せ。  sin^3(x)  これの複素形フーリエは  sin^3(x)=(-1/8i)(exp(3ix)-3exp(ix)+3exp(-ix)-exp(-3ix) というのは分かったのですが、これを実数形に直したら、  sin^3(x)=(-1/4)(sin3x-3inx) になることがわかりません。アドバイスをお願いします。  それと、f(x)=0(-π<x<0),1(0≦x≦π) の複素形フーリエ級数の答えが、 f(x)=(1/2)+(1/πi)Σ(1/(2n-1){exp(i(2n-1)x)-exp(-i(2n-1)x) になるらしいのですが、  僕が計算した結果  (1/2)+(1/πi)Σ(1/2n)(1-(-1)^n) になりました。実数形はどうなるのでしょうか?  どうしたらよいかアドバイスをお願いします。

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

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

  • Mathematicaで恒等式を解く方法

    最近、少しMathematicaをかじり始めたものです。 さっそくですが、以下のような恒等式を解かせるにはどうすればよいのか教えてください。 y^3 + y^2 + 3 = a y^3 + b y^2 + cy + d この式から (a, b, c, d) = (1, 1, 0, 3) という答えを得たいわけです。 さらには y1 y2 + y1^2 y2 + y1 y2^2 = a y1 y2 + b y1^2 x2 + c y1 y2^2 という式から (a, b, c) = (1, 1, 1) と計算させたいと考えています。 よろしくお願い致します。

  • 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をはじめたのですが、ある微分方程式をMthematicaで解こうとしたとき、理解できない回答が出力されます。 f[x_] := Tan[x]/x; と定義して DSolve[{y'[x] == f[x], y[1] == 2}, y[x], x] のように解こうとすると、 {{y[x] -> 2 + ∫(Tan[K$196]/K$196)[DifferentialD]K$196}} ※∫の積分範囲は(1~x) のように出力されます。 ”K$”の意味を教えてください。よろしくお願いします。もしくは、この微分方程式は解くことができないのでしょうか?

専門家に質問してみよう