ハマっている「お菓子」を教えて!

y=sinxcosxとy=sinx+cosxのグラフの書き方が分かりません。sinとcosのグラフを書いてその二つをかけたり足したりすればいいのでしょうか?

A 回答 (4件)

単にグラフを描きたいだけならExcelで簡単にできます。

以下の手順でグラフを描いてみてください。これはVBAを使った計算プログラムですが、(1)から(5)までの手順を行えば簡単にできます。

(1)Excelを起動→キーボードのAltキーを押しながらF8キーを押す(Atl+F8)と、マクロというウィンドウが出るので、その名前欄(マクロ名(M)の下の箱)に適当な名前(aaa)をかきこんで(括弧はつけないで aaa だけ記入)、実行をクリック

(2)画面が変わって、Microdoft Visual Basic ... というのになりますが、真っ白な画面に出ている Sub aaa() と End Sub の間の空の行に、以下のプログラムをコピー&ペーストします(以下の文をマウスで選択してCtrl+Cでコピー、Ctrl+Vでペースト)。

↓ここからコピー
Dim i As Integer, n As Integer, x As Single, x0 As Single, x1 As Single
'
n = 100 ' データ点は100個
x0 = 0: x1 = 2 * 3.141593 ' x=0から2*πまでの範囲
'
For i = 0 To n
x = x0 + i * (x1 - x0) / n ' xの計算
Cells(i + 1, 1) = x ' ワークシートのA列に x の値を書き込む
Cells(i + 1, 2) = Sin(x) * Cos(x) ' ワークシートのB列に sinxcosx の値を書き込む
Cells(i + 1, 3) = Sin(x) + Cos(x) ' ワークシートのC列に sinx+cosx の値を書き込む
Next i
↑ここまでコピー

(3)ペーストすると、以下のようになると思います。

Sub aaa()
Dim i As Integer, n As Integer, x As Single, x0 As Single, x1 As Single
'
n = 100 ' データ点は100個
x0 = 0: x1 = 2 * 3.141593 ' x=0から2*πまでの範囲
'
For i = 0 To n
x = x0 + i * (x1 - x0) / n ' xの計算
Cells(i + 1, 1) = x ' ワークシートのA列に x の値を書き込む
Cells(i + 1, 2) = Sin(x) * Cos(x) ' ワークシートのB列に sinxcosx の値を書き込む
Cells(i + 1, 3) = Sin(x) + Cos(x) ' ワークシートのC列に sinx+cosx の値を書き込む
Next i
End Sub

(4)Excelのワークシート画面(表が出ているウィンドウ)に戻って、キーボードのAltキーを押しながらF8キーを押す(Atl+F8) → 再びマクロというウィンドウが出るので、その「実行」をクリックする(カーソルを合わせないでEnetキーを押すだけでもいい) → ワークシート画面のA列にxの値、B列にsinxcosxの値、C列にsinx+cosxの値がズラリと出る!。

(5) (グラフの描き方をご存知なら以下は飛ばしてください)
セルA1からC101までをマウスカーソルで選択して → メニューの「挿入」 → 「グラフ」 を選択 → グラフの種類の「散布図」を選んで「形式」は適当なのを選んで「完了」をクリック → これで sinxcosx と sinx+cosx のグラフが描画されます。

なお、このプログラムでは 、データ数は 100 、x の範囲は 0 から 2*π まででとしていますが、これを変えるには、プログラム中の以下の数値(nとx0とx1)の値を書き換えてください。n を変えたときは、(4)をもう1度実行して、さらにワークシートに出ているグラフの描画範囲も変えてください。

n = 100 ' データ点は100個 → n を大きくすると細かいグラフになります
x0 = 0: x1 = 2 * 3.141593 ' x=0から2*πまでの範囲 → x0=-10:x1=10 とすれば -10≦x≦10 の範囲のグラフが描けます
    • good
    • 0
この回答へのお礼

なるほどVBAで求める方法もあるのですね、参考になりました。

お礼日時:2007/04/08 19:41

Excelでグラフを描写する際はVBAを用いるのも一つの方法だと思いますが、


もっと楽な方法はワークシート関数に以下を代入して、オートフィル機能でいくつかのデータを作り、散布図でプロットすれば良いと思います。
列AにXのデータが格納されているとき、列B1、列C1に下式を代入して、下方向にドラッグするだけです。

sin(RADIANS(A1))*cos(RADIANS(A1))
sin(RADIANS(A1))+cos(RADIANS(A1))
    • good
    • 0
この回答へのお礼

いろいろな方法があるのですね。参考になります!

お礼日時:2007/04/08 19:41

ーーー


こんには

#1
y=sinxcosx  については倍角の公式使用で
=(1/2)(2sinxcosx)
=(1/2)sin2x

#2
y=sinx+cosx  につては三角関数の合成公式使用で
=√2((1/√2)sinx+(1/√2)cosx)
=√2(sin(x+(π/4))

とするのが常道のようです。
この後が不明なら、ご連絡下さい。

SEE YOU
ーーー
    • good
    • 0
この回答へのお礼

公式で求められるのですか。ありがとうございます。

お礼日時:2007/04/08 19:42

y = sin x cos x = (1/2)sin 2x です.サインの倍角公式の逆です.


また三角関数の合成で,y = sin x + cos x = √2 sin(x +π/4) ですね.だからこれは,y = sin x のグラフを x 軸方向 -π/4 だけ平行移動して,縦に√2 倍に伸ばしたものです.
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2007/04/08 19:40

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