ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:mathematica) mathematicaで逆関数を求める方法と目標の求め方 2011/09/16 20:43 このQ&Aのポイント mathematicaで逆関数を求める方法や、目標であるy=1のときのxの値を求める方法について知りたいです。また、f(x)が複雑な式であるため、solveを使っても解けない場合の解法も教えてください。よろしくお願いします。 mathematica mathematicaで以下のような計算をしたいと思っています。 目標:y=f(x)がありy=1のときのxの値が知りたい そこで自分は逆関数を求めてからその式に1を代入して求めようと考えたのですがmathematicaで逆関数を求めるのはどのようにすればよいのでしょうか? もうひとつの解法としてシンプルに1=f(x)を解こうと試みてsolveを使ったのですが自分が今使おうとしているf(x)は中に積分が入っていたりと複雑なせいか、solveでは解けないと返ってきました。 上記のどちらでも構わないのでmathematicaで目標を求めるにはどのようにすればいいのでしょうか。よろしくお願い致します。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー kiyomushi ベストアンサー率68% (13/19) 2011/09/17 10:07 回答No.1 NSolve や FindRoot はいかがでしょうか。 質問者 お礼 2011/09/17 15:08 こんなにも早くに解答ありがとうございます。 NSolveとFindRootをやってみた結果 Nsolveは「この系はNSolveで利用できるメソッドでは解けません」 と返って来て FindRootは「100回以内の反復では要求された精度または確度に収束することができませんでした」 と返って来て出来ませんでした。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ 学問・教育数学・算数 関連するQ&A 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の以下のプログラムでエラーがでてしまうのですが どこが間違っているのか教えてほしいです 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で表示したいのですが 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はやってくれません。 関数形のまま扱い、任意の回数部分積分を実行したいのです。 やはり、自分で関数を作るしなかないのでしょうか? 何かヒントがあれば、教えていただければ幸いです。 よろしくお願いいたします。 天文学のお話。日本ではどのように考えられていた? OKWAVE コラム Mathematica式の挿入について こんにちは、 下記のように、yを微分して得られる解をまたyに代入したいのですが y = (2/5)*(1 - x)*a^2 - (4/105)*(1 + 2*x)*a^3; y /. a -> Solve[D[y, a] == 0, a][[2]] と計算してもうまく計算できません。 どうしたら良いでしょうか? 要するに、下記にように Simplify[y /. a -> -((7*(-1 + x))/(1 + 2*x))] 計算して -((98*(-1 + x)^3)/(15*(1 + 2*x)^2)) を得たいのです。 mathematicaで重積分ができません。 mathematicaで複雑な2重積分を計算しようとしたのですが、出力に積分式そのものが出てしまって、計算結果が出力されません。いったいどうしたらよいでしょうか? Mathematicaがうまく使えません。 Mathematicaがうまく使えません。 関数f(x)でxが1から10までのリストを作りたいのですがうまく命令できません。どのように打てばいいのでしょうか? mathematicaでリストの格納 mathematicaでTable関数で作成したリスト {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}, ... , {xn, yn, zn, f(xn,yn,zn)}} 中のx1~xnまでの各成分とy1~ynまで(、z1~znまで、 f(x1,y1,z1)~f(xn, yn, zn)までの各成分)をそれぞれ配列に格納するにはどうすればいいのでしょうか?(C言語のようにループ文で配列に格納することはできないのでしょうか?) もしくは、行列中で列の成分を取り出すことはできますか? どなたか解法を示していただければ幸いです。 mathematicaの積分 mathematicaの積分で Integrate[f[x],x]+Integrate[g[x],x] を Integrate[f[x]+g[x],x] にするにはどうすればいいでしょうか。 お願いします。 Simplifyでもやってくれません。 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$”の意味を教えてください。よろしくお願いします。もしくは、この微分方程式は解くことができないのでしょうか? 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になるような計算をしたい場合はどうすればいいんですか? よろしくお願いいたします。 ループしている積分の解き方 題では分かりにくいかもしれませんが、周回積分ではありません。 ある関数f(x,y)を求める時に、次の式が与えられています。 f(x,y)=a∫{bz/f(x,y)^2}dz ただし、a,b,cは定数 この積分はcから0までの定積分です。 通常の積分とは異なり、f(x,y)の計算結果を 積分区間内に入れて計算する必要がある為、説き方が全く分かりません。 解き方に手段は問いません。 Mathematicaとかを使ってもいいです。大体の近似だけでもいいです。 ただ、プロット後の近似曲線だけはダメです。 どんな些細なヒントやアイデアでもいいです。 何か思いついた事や知っている事があればよろしくお願いします。 日本史の転換点?:赤穂浪士、池田屋事件、禁門の変に見る武士の忠義と正義 OKWAVE コラム 2変数関数の計算方法 1/(√y)=2log_[10](x・√y)-0.8 という関数のyの値が分かっている場合のxの値は、上式を変形して、 log_[10](x)={1/(2√y)}-log_[10](√y)+0.4 x=10^[{1/(2√y)}-log_[10](√y)+0.4] にしてyの値を代入すれば、xの値を求める事ができます。 逆にxの値が分かっていてyの値が分からない時の計算方法ですが、この関数はy=の形に変形できません。 どうやって計算すればよいのでしょうか? Excelを使って計算できないでしょうか。申し訳ありませんが、お分かりになる方教えてください。 よろしくお願いします。 mathematicaでの計算 mathematicaで微分演算子を含むハミルトニアンを独立に扱いたのですが,できるのでしょうか? 例えば,一次元調和振動子のハミルトニアンでしたら H=-d^2/dx^2+x^2 ですが,これを独立に扱って (H-E)^2*ψ などの計算をmathematicaで簡便に行いたいのですが(ここでψは簡単な指数関数,ψ=exp(-a*x^2) など),このような計算のプログラミングはどのようにすればできるのでしょうか? Mathematicaのoutputについて Mathematicaで何か式を計算するとき、パラメーターをいくつか用い出力すると、パラメーターは使ったアルファベットのまま整理されて出力されます。 その後一度パラメーターに値を代入してから、もう一度前の式を評価するとパラメーターに値が代入されて出力されます。 ここで、パラメーターに一度数値を代入した後に、また式をアルファベットを用いた形で表示させるのはどうしたらいいでしょうか?(パラメーターの値の初期化とか?) よろしくお願いします。 逆関数の置換積分の原理をもう少し深く理解したいです 逆関数の置換積分が根本的に分からないのです。(置換積分の考え方についての質問です。) 「πx^2sin(πx^2)の1≦x≦0までの区間とx軸に囲まれた平面をy軸周りに回転させて出来る立体の体積を求めよ」という問題でそれに気づかされました。 有名問題そうなのでグラフの様子や答え自体は周知という前提で話を進めます。 この問題のある解き方ではまず0≦x≦1なる極点のx座標をα(y座標をy1)とします。 そしてαを境目として、問題の関数を2つの逆関数x=g1(y)(0≦x≦α)、x=g2(y)(α≦x≦1)で表現すると、その回転体の体積は∫[0,y1]π(g2(y))^2dy-∫[0,y1]π(g1(y))^2dyとなり この式についてy=f(x)とおくと∫[1,α]πx^2f'(x)dx-∫[0,α]πx^2f'(x)dxとなるということだったと思います。あとはごちゃごちゃ計算すれば値πが求まるわけです。 y=f(x)と置いた後の積分の式はdyの部分がf'(x)dxになっていて、これは置換積分の公式y=f(x)dx⇔y=f(g(t))dx/dt*dtについて、tをyと見て適用した結果が素直に反映されているように見えます。 疑問なのはg1,2(x)^2がx^2になっているところで、なんでこうなるのかちゃんとは理解できていないようなのです。 x=g(y)のような式をy=f(x)でおくのだからx=g(f(x))ということになるでしょう。これは公式のf(g(t))に対応すると思います。公式のこの部分は、tで置換積分すると決めたらf(x)の変数xが全てtで表されるようにしろという意味で私は理解しています。 たとえばx(x-2)^3のような式を積分するならt=x-2と置くでしょうが、そのとき式中の(x-2)は宣言した通り一文字のtで置き換えるだけですしt=x-2はxについて解けますからそれを代入することによって式はtだけの式で表されるということになります。 ですがこれと違って、y=f(x)でおくという場合代入という考え方で式の同値変形ができるわけではありませんよね。公式を適用する中でg(f(x))=xというのはどうやって導出するものなのかが分からないのです。 考えてみたら、逆関数として表現したものを逆関数で置きなおすのだからx=g(y)という等式で結ばれたxでそれは表現されるというのは「なんとなく」そんな気がしますし、これに限っては「逆関数の逆関数はx」と暗記することで済むと思います。 しかし数学なのだから考え方が正しければ途中過程によらず正しい答えにたどり着くという前提のもとで、置換積分の際の置き方というのは自由なはずですから、たとえばy=f(x)ではなくy=2f(x)として置換積分したらどういう流れで元の結果に行き着くだろうと考えたのですが、全くわからなくなりました。 y=2f(x)ですからdy=2'f(x)dxなのは当然でしょう。するとg(2f(x))は2'f(x)dyの2が打ち消されるような式でなければならないわけです。置き換える前の式は∫[0,y1]π(g2(y))^2dyのように式が二乗されていますから求める式はg(2f(x))はx/√(2)ということになる、のでしょうか?いよいよ分からなくなるわけです。x/√2という式でたとえ合っていたとしても、また別の、答えがあらかじめわかっておらず、こうしたつじつま合わせが使えない別の問題は解くことができないのです。 長くなりましたが、なぜ最初の問題について積分の中身をg(y)^2がx^2となるのか、y=2f(x)のように置いた場合にも応用が利くような考え方でご解説いただきたいと思います。よろしくお願いします。 複雑な計算を行なうフリーソフトについて y=x^4 -4x^3 +x^2 -1といった4次関数に 3+√7 x=------ 2 のようなルートの入った数値を代入して、正確な値を知りたいのですが、手計算では複雑すぎて困っています。 ルートの入った数値などを計算できるフリーソフトをご存知でしたら教えていただけないでしょうか? よろしくお願いします! 畳み込み積分の数値計算方法 y(t)=∫f(τ)h(t-τ)dτ, 積分区間 0≦τ≦t. この畳み込み積分のfとhの関数形が具体的にわかっているときに、y(t)の値を求めるにはどうすればいいのでしょうか。積分が解析的な式で表される場合はその式にtの値を代入すれば済むと思いますが、解析的な式でかけない場合は数値計算しないといけないと思います。数値計算はどのようにするのでしょうか? ラプラス変換とかフーリエ変換とか使うのでしょうか? 数値積分をするのでしょうか? 常套手段があると思うので、教えて下さい。 積分区間と積分するもの、具体的な計算 F=∫x dx (0~2まで積分) があったとします。 これを F=∫lnx d(lnx)としたとき積分範囲は(0~2)のままなのでしょうか? また、この2式は同じこと(どちらも値がF)を表しているようなのですが、なぜそうなるのでしょうか? 次に具体的な計算について質問ですが F=[1/{√(2π)*ln2}] *∫(積分区間0~x) exp[-(lnx-ln1)^2/2*(ln2)^2] d(lnx) この計算はどうするのでしょうか? 積分区間0~xについては、x=0.4で計算お願いします。 ちなみに上の式は、元の式で与えられてる値は代入したもので、もとの式の形をわかって頂くために、あえて値を代入しただけで計算してまとめておりません。 拡張された逆正接関数の表記方法? Mathematica や Maple,Excel などでは,逆正接関数を用いて全象限について偏角が出力できるよう,拡張された逆正接関数が用意されております。例えば Mathematica の ArcTan[x,y],Maple の arctan(y,x),Excel の atan2(x,y) 関数などです。 さて,このような拡張された逆正接関数は実際の数学にも存在するのでしょうか? もし存在する場合,どのように表記するのでしょうか? もし数式が複雑な場合,TeX で教えていただければ幸いです。 どうか宜しくお願いいたします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ 学問・教育 人文・社会科学 語学 自然科学 数学・算数 応用科学(農工医) 学校 受験・進学 留学 その他(学問・教育) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
こんなにも早くに解答ありがとうございます。 NSolveとFindRootをやってみた結果 Nsolveは「この系はNSolveで利用できるメソッドでは解けません」 と返って来て FindRootは「100回以内の反復では要求された精度または確度に収束することができませんでした」 と返って来て出来ませんでした。