アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えて下さい!
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なども検討しましたがうまく
行きません。)

A 回答 (3件)

#2で定数の例が悪かったので補足します.



Mathematicaはπ,eだけでなく,主要な物理定数もパッケージMiscellaneous`PhysicalConstants`に持っています.そちらを使うのもお勧めします.
    • good
    • 0

Mathematicaで小数点を扱う場合はそこで有効桁数が制限されます.



なるべく少数は使わず,1/100のように分数で記述しましょう.そうすれN[]の計算まで,有効桁数が保留されます.

定数も3.1415とか記述せずに,31415 10^(-4)という具合です.
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/17 10:19

何か勘違いされていると思います。


二元四次方程式には最大で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のヘルプをよく見て行ってください。

この回答への補足

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

補足日時:2005/03/17 10:21
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/16 23:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!