- 締切済み
C言語のプログラミングについて
あんまり詳しくないですが質問させていただきます。 コンパイラはBorlandです。 双曲線や楕円の式のx^2とy^2の計算で 例えば x^2+4x+(4/3)y^2=12 の楕円の式で xの範囲と間隔を指定してからyを計算させるプログラムを作りたいのですが どうすればいいか教えてほしいです。 本当はgnuplotでグラフを作りたかったんですができないので プロットする値をプログラムで計算させてその値からgnuplotでグラフを 書きたいのですが・・・ わかりにくい質問ですがお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- beefisdead
- ベストアンサー率63% (92/145)
それだったらgnuplotのみで出来ますよ。 set parametricとすると、以降はパラメータtに関して点を計算してくれるようになります。 たとえば gnuplot> set parametric gnuplot> plot [0:2*pi] cos(t), sin(t) で円が描けます。 あとは、適宜キャンパスサイズを調整したりすれば楕円も描けるのは想像できると思います。 http://t16web.lanl.gov/Kawano/gnuplot/parametric.html もし他の言語で計算させたいとしたら、Cを使用するよりはPerlのようなものを使用した方が圧倒的に楽です。
- redfox63
- ベストアンサー率71% (1325/1856)
XやYの値域を方程式を解いて考えましょう x^2 + 4x + (4/3)y^2 = 12 を X^2 + Y^2 = R^2のような形に変記すると x^2 + 4x + 4 + (4/3)y^2 = 12 + 4 (x+2)^2 + (4/3)y^2 = 4^2 中心は(-2,0)になり短径が4 ここで xが-2ならば (x+2)^2は0であるから (4/3)y^2 = 16 y^2 = 12 y = sqrt(3)*2 または y= -sqrt(3)*2となる 逆に y=0の場合 (x+2)^2 = 16 x+2 = 4 or x+2 = -4 x = 2 or x = -6 といった値域が求まる これをループして適当なデータをサンプリングしグラフを描けばいいのではないでしょうか
- mtaka_2007
- ベストアンサー率25% (20/78)
グラフ表示にgnuplotを使うのであれば、octaveという科学計算ソフトを使われたらいかがでしょうか。Windowsでも使えると思います。または、Scilabというソフトでも可能です。プログラムの作成はC言語より簡単と思います。自動的にスケール等が表示されますので、便利です。C言語で作成してもグラフ表示するのが大変と思います。Excelでも作れるのでは。 プログラムはNo1の人の回答のとおりと思います。gnuplotでも全体を描けると思いますので、範囲を限定すればよいのでは。
- jacta
- ベストアンサー率26% (845/3158)
方程式を y= の形式に直してから、ループをまわすだけです。