• ベストアンサー

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なども検討しましたがうまく 行きません。)

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

  • ベストアンサー
  • nakaizu
  • ベストアンサー率48% (203/415)
回答No.1

何か勘違いされていると思います。 二元四次方程式には最大で16個の解があります。 NSolve[{f==0,g==0},{x,y},30] で解を求めてその中から条件に合うものを選び出して その値をx,yとすると ListPlot[{x,y}] で点を表示すればよいものと思われます。 プログラムをうまく作れば方程式を代入するだけで表示できるようになりますが、そのためにはMathematica をよく理解しないといけません。 どうもf(x,y)=0とg(x,y)=0のグラフを描こうとされているようにも思えますが、それならば ImplicitPlot[{f==0,g==0},{x,-10,10}] で描くことができます。ただ標準のPackageには組み込まれていないので、使用するには下準備が必要です。 Mathematicaのヘルプをよく見て行ってください。

goobaraki
質問者

お礼

アドバイスありがとうございました。 NSolve[{f==0,g==0},{x,y},30]と ListPlot[{x,y}]でやってみたいと思います。 欲しい根はx,y共に実数の組み合わせですが、 これにはちょっとしたプログラミングが必要と言うことですね。 これからMathematicaを勉強させていただきます。

goobaraki
質問者

補足

おかげさまで望みのプロットを得ることができました。適切なアドバイス有り難うございました。 1点途中で自分のミスに気づいたのですが、fとgの関数中に外積の1成分を係数に持たせる部分があったのですが、そこの所をミスって、ベクトルのまま関数に放り込まれておりましたため、計算が先に進んでいなかったということもありました。ベクトルAの成分抽出には、A[[n]]を使いました。 根のうち、純粋に実数を抽出すると言うところまでできてはおりませんが、それは今後の課題としてさらに勉強してゆこうと思います。 大変有り難うございました。

その他の回答 (2)

  • tkfm
  • ベストアンサー率36% (27/73)
回答No.3

#2で定数の例が悪かったので補足します. Mathematicaはπ,eだけでなく,主要な物理定数もパッケージMiscellaneous`PhysicalConstants`に持っています.そちらを使うのもお勧めします.

  • tkfm
  • ベストアンサー率36% (27/73)
回答No.2

Mathematicaで小数点を扱う場合はそこで有効桁数が制限されます. なるべく少数は使わず,1/100のように分数で記述しましょう.そうすれN[]の計算まで,有効桁数が保留されます. 定数も3.1415とか記述せずに,31415 10^(-4)という具合です.

goobaraki
質問者

お礼

有効数字に関する表記上の留意点を教えていただき有り難うございました。

関連するQ&A

  • mathematica

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

  • 行列の連立方程式 (mathematica)

    mathematica4.1を使用して,行列で表した連立方程式を計算したいと思っています.例えば A= a11 a12 a13 a21 a22 a23 a31 a32 a33 B=b11 b12 b13 b21 b22 b23 b31 b32 b33 C,Dも同様に定義して A .x+B .y=1 C .x+D .y=0 x=x1 y=y1 x2 y2 x3 y3 のような連立方程式のx,yについて解きたいのですが,どのようにmathematicaで表現すればよいかが分かりません. どなたか教えてください.お願いします. 当然ではありますが,A,B,C,Dはすべて既知としています.

  • 連立方程式

    aを実数の定数として、x,yの連立方程式(a+2)x+3y=a , (2a-1)x+ay=3を考える。連立方程式がただ一つの解をもつとき、x,yをそれぞれ求めよ。(aを用いて) このような問題なのですが、そもそも連立方程式がただ一つの解をもつ条件とは何なのですか?教えて下さい!!!

  • 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については素人ですが、頑張って勉強しています。 2種間の競争を表すモデルを解いていますが、うまくいきません。 微分方程式は以下のようです。 dx/dt=r1x(1-(x+ay)/K1) dy/dt=r2y(1-(bx+y)/K2) 上記の方程式をMathematicaで次のように書きました。 r1 = 1; r2 = 2; K1 = 80; K2 = 70; a = 0.7; b = 1.1; ok = Dsolve[{x'[t] == r1 x [t](1 - (x[t] + a y[t])/K1), y'[t] == r2 y[t](1 - (b x[t] + y[t]/K2)), x[0] == 0, y[0] == 0}, {x[t], y[t]}, t]; これでいいのですか?また、これをx,y軸の範囲が0から100としてPlotしたいですが、どのように書けばいいのですか? よろしくお願いします。

  • 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],・・・] とするとエラーがでてしまいますどうしたらいいでしょうか

  • 連立方程式式

    連立方程式式 1/x +1/y=1/2 , 3/x+5/y=7/4を 満たす実数x,yを求めよ。 これ、わかりますか⁇ 詳しく説明もあると 嬉しいです(*^^*)

  • 連立方程式

    社会人になって、高卒資格を取るために独学中です。 数学が非常に、非常にネックになっています。 「語りかける中学数学」という本で学んでいます。 食塩と連立方程式の処で躓き、一週間悩んでいます。 設問 「16%の食塩水に加えて、20%の食塩水420グラム作りたい。 この時の16%の食塩水の量、および加える食塩の量を求めて下さい。」 解答: X+Y=420・・・(1)      X/100×16+Y=420/100×20・・・(2) (1)(2)(連立方程式)より、X=400、Y=20 よって、16%の食塩水400g、加えた食塩20g。・・・答え。 (2)を右辺をまとめると、21/5や84になり解答編の数字になりません。 此処をグルグル回って大混乱しています。 途中式から教えていただきたいです。 よろしくお願いします。

  • 連立方程式の同値性について

    連立方程式の同値性について f(x,y)=0...(1) g(x,y)=0...(2) (1)と(2)から、h(x,y)=0 ..(3)ができたとします。 「(1)かつ(2)」は「(3)かつ(1)」であるための必要十分条件といえるか。 基本的なことですが、よろしくお願いします。

  • 連立方程式について教えてください。

    例えば f(x)=x^2+2x+1=0・・・(1) g(x)=x^2+4x+4=0・・・(2) 連立させて (1)-(2)から-2x-3=0⇒x=-3/2 連立方程式というと「(1)と(2)を同時に満たすxを求めること」と自分は解釈しています。しかしこのx=-3/2というのを(1)、(2)に代入すると 1/4=0と矛盾します。実際、x=-3/2というのはy=(x),y=g(x)の交点のx座標のことですが、この矛盾は自分の連立方程式に対する解釈がどう間違っているのでしょうか? そしてまた α^2-(m+1)α-m^2=0・・・(1) α^2-2mα-m=0・・・(2)があったとします。 これをα、mについての連立方程式と見てとく、自分は「(1)と(2)を同時に満たすαとmを求めること」と解釈していますが、そうすると (1)-(2)からm=1, m=αと出てきます。これをそれぞれ(1)か(2)に代入して解くと、αについて得られますが、上の問題の矛盾点からすると、それは必ず(1)と(2)を同時に満たしているαなのでしょうか? 上の問題と下の問題を関連又は違いについて注目しながら、疑問にお答えして頂けると幸いです。