ページ 1 / 1
三角関数
Posted: 2009年12月03日(木) 11:52
by 50CIMA
質問です。
C言語のことは無知で申し訳ないのですが、質問させていただきます。
研究でC言語を学んでいるんですがsin^2の表し方がわかりません。
もしよかったら教えてもらってもよろしいですか?
迷惑かけますが協力おねがいします。
結果的にはI=i0sin^2(2θ)sin^2(Δndπ/λ)の計算をC言語でしたいです。
よろしくおねがいします。
Re:三角関数
Posted: 2009年12月03日(木) 12:12
by YuO
sin^2(θ)というのは,sin2θのことですか?
であれば,sin2θは(sinθ)2のことですから,
pow関数でsin関数の結果を2乗すればよいと思います。
Re:三角関数
Posted: 2009年12月03日(木) 12:39
by 50CIMA
返信ありがとうございます。
そうです。
sin二乗θのことです。
I=i0sin^2(2θ)sin^2(Δndπ/λ)
のプログラミングはどのようにつくればいいんですか??
あつかましく無知で大変迷惑おかけします。
Re:三角関数
Posted: 2009年12月03日(木) 12:46
by Ma
pow 関数を調べましたか?
sin^2(2θ)⇒pow(sin(2*θ),2)
sin^2(Δndπ/λ) ⇒ pow(Δndπ/λ,2)
です。(ただし、θとΔndπ/λはC言語的意味で変数とする。)
Re:三角関数
Posted: 2009年12月03日(木) 12:55
by 50CIMA
ありがとうございます。
まったくC言語がわからない状態でC言語の課題を与えられたためまったくわからなくて・・・。
本当にすみません。
だからどのようにプログラムをつくっていいのかもわからなくて・・・。
卒業研究の時間がもうなくてとてもあせっているんですよ。
それとこんな私の質問に返答していただきとても感謝しております。
Re:三角関数
Posted: 2009年12月03日(木) 16:20
by たかぎ
pow関数でもよいですが、単に2乗するだけなら...
double y = sin(x);
y *= y;
で十分ですね。
Re:三角関数
Posted: 2009年12月03日(木) 16:41
by 50CIMA
返答ありがとうございます。
ある程度のプログラムを作ってもらうとかはできないですかね??
本当に申し訳ないです。
Re:三角関数
Posted: 2009年12月03日(木) 16:44
by たかぎ
> ある程度のプログラムを作ってもらうとかはできないですかね??
丸投げは禁止です。
できるかできないかでいえばできますが、有償対応になります。
(お金儲けが目的ではありませんので、誤解なきよう)
Re:三角関数
Posted: 2009年12月03日(木) 16:51
by 50CIMA
すみません。
授業うけたけとないのにこの課題を与えられててんぱってしまってって・・・。
本当にすみませんでした。
Re:三角関数
Posted: 2009年12月03日(木) 17:04
by MNS
まったく分からないのでしょうか?
main関数が書け、変数や演算子がわかるのならば、まだ少しは教えられると思いますが。
Re:三角関数
Posted: 2009年12月03日(木) 17:08
by 50CIMA
はい。
全くの無知です。
Re:三角関数
Posted: 2009年12月03日(木) 18:19
by non
1週間あれば組めるようになると思いますよ。
卒研なら、まだ先があるだろうし、勉強することをお勧めします。
Re:三角関数
Posted: 2009年12月03日(木) 21:04
by たいちう
理工系の卒業研究のために、ちょっとした計算をC言語でやりたいのでしょうか?
nonさんの書いた1週間(真剣に40時間やる)というのは、
C言語習得までの時間の1つの目安になると思います。
もちろんあなたの成果を保証することはできませんが、
ある程度基礎ができていれば、この掲示板も効果的に利用できるでしょう。
しかし最終的に作りたいのは本当に
> I=i0sin^2(2θ)sin^2(Δndπ/λ)
この計算だけなのでしょうか?
変数が全てスカラーで、この計算を一回するだけのプログラムならば、
基礎習得のおまけで完成させられると思います。
それ以上ならば、当然それなりの時間がかかります。
専門の研究にも時間がかかるでしょうし、C言語ができる友人に頼んだり、
担当教官に相談して、ハードルを下げてもらう方が現実的かもしれません。
Re:三角関数
Posted: 2009年12月04日(金) 15:04
by 50CIMA
返答ありがとうございます。
私は液晶を専門に研究をしているのですが、液晶の透過光強度って言うのを求める式がI=i0sin^2(2θ)sin^2(Δndπ/λ)なんですよ。
この式のΔndπを変化させてグラフを得たいんです。
私は情報コースではないため周りにC言語の詳しい人があまりいなくて・・・・。
Re:三角関数
Posted: 2009年12月04日(金) 17:31
by MNS
その程度の計算を行うだけならば、今からC言語を勉強してもおそらくすぐに出来ると思います。
しかし、もしC言語を用いてグラフを描くことが目的となると、すぐには難しいかもしれません。
Re:三角関数
Posted: 2009年12月04日(金) 18:34
by non
工学を勉強しているなら、C言語でなくても何かプログラムをやったのではないの?
プログラムの経験が何かあるなら、大丈夫だと思いますよ。まして、この後、グラフ作ったり
いろいろ手を加えるなら、人に作ってもらうのでなく自分で作らないとできませんよね。
もし、どうしてもCでは無理なら、卒研の先生にそういって、CでなくEXCELにするとか
MATLABなどを使うとか提案したらどうですか。でも、卒研の先生がCでやれってことは、やれる
能力が学生にあるだろうってことだと思いますけどね。毎年、ゼミの学生を見てきているのだから。
具体的に勉強していく段階でわからないことがあれば、力になりますので、がんばってください。
Re:三角関数
Posted: 2009年12月04日(金) 22:49
by Dixq (管理人)
>50CIMAさん
こんばんは^^
自分の専門外のことはなかなかわからないものですよね。
それに今後使う予定の無いようなものにはなかなか熱心に勉強出来ないものですよね。
多分質問の書き出しが
「研究でC言語を学んでいるんですが」
だったので、
「C言語学んでるのにそんなことも解らないのか、しっかり勉強せぃ」
のような雰囲気になってしまったのだと思います。
4年生、しかも卒業目前にしてCを知らないという事は本当に完全に専門外なんですね。
授業でも全くやってないと?
Cは自分の専門外でさっぱりわからないことを先に伝えておけばアドバイスも何か変わったかも知れません。
さて、sinの計算とかはわかればホント1分とかでプログラムが書けてしまいます。
それ位簡単なので是非やってみましょう。
「1分で出来るんなら代わりにつくってよ」と思うかも知れませんが、
課題の丸投げは一応禁止という規約になっているので、管理人自ら破るわけにいかないのです、ごめんなさい。
では、まず、どの程度の知識があるのかということからはっきりさせましょう。
コンパイラはありますよね?
プロンプト画面に「hello world」の文字を出す位の事は出来るのでしょうか?
以下完全に入門レベルからこの課題が解けるレベルまで試しに問題を出してみますので、
どこまで解けるか教えてください。
問題1
「画面に hello world を表示するプログラムを書きましょう」
問題2
「2×2の計算結果をprintfで表示するプログラムを書きましょう」
問題3
「キーボード入力で受け取ったint型数値2つを掛け合わせた結果を表示するプログラムを書きましょう」
問題4
「キーボード入力で受け取ったdouble型数値のsinを表示するプログラムを書きましょう」
問題5
「テキストファイルに書かれたdouble型数値2つ(フォーマットは問わない)を掛け合わせた結果を表示するプログラムを書きましょう」
もし実験データとかじゃなく、本当にその計算だけすればいいなら3,4,5はわからなくても出来ます。
後、グラフを書くなら何で書くんですか?
何かグラフィックライブラリを使うんでしょうか?
エクセル出力にしてグラフ化するとか、DXライブラリ使うとか、「*」で頑張って書くとか色んな方法があると思います。
Re:三角関数
Posted: 2009年12月07日(月) 14:34
by 50CIMA
管理人様やアドバイスをくれた皆様返事ありがとうございます。
知り合いに教えてもらいI=i0sin^2(2θ)sin^2(Δndπ/λ) の計算のプログラムをつくることができました。
アドバイスありがとうございました。
あとひとつ質問なんですけどI=i0sin^2(2θ)sin^2(Δndπ/λ) で数値に範囲をつけて計算できるプログラムを作成したんですけどvisual studioのC言語のんでつくったのですがグラフのプロットはどうすればいいのでしょうか。
申し訳ないですがアドバイスおねがいします。
Re:三角関数
Posted: 2009年12月07日(月) 16:02
by softya
Re:三角関数
Posted: 2009年12月07日(月) 17:42
by 組木紙織
規約違反であるとおもいますが、何処が規約違反か分からないときは、聞いてくれて構わないと思っています。
もちろん、規約を読んだ後の話ですが。
Re:三角関数
Posted: 2009年12月07日(月) 21:38
by やそ
無事に計算ができたようで、おめでとうございます。
式の計算ができたということは、結果を表示できたわけですね。
printfなどで画面(標準出力)に表示したのでしょうか。
グラフなら、その出力結果をファイルに落として、エクセルかなにかのソフトで読み込んで
グラフ表示すればよいと思いますがどうでしょうか?
Re:三角関数
Posted: 2009年12月07日(月) 23:23
by lbfuvab
= 一連の流れ =
①必要なΔndπ毎に計算する
↓
②計算結果をファイルに出力(csvファイル推奨)
↓
③エクセル(なければOpenOffice Calc、GNU plot等)でグラフ化。
= 解説コーナー =
①については
「for文」とか「while文」でググってもらえれば良いです。
②については
出力に関してはfopen,fprintf,fclose辺りでググって下さい。
csvファイルの形式についてはググって下さい。勉強になりますので。
③については
出来ますよね?ファイルを開けるぐらい。
Re:三角関数
Posted: 2009年12月08日(火) 10:09
by Mist
> lbfuvabさん
丸囲み数字はMacだと正しく表示されませんのでこういうところではあまり使わないほうがいいですよ。
Re:三角関数
Posted: 2009年12月08日(火) 19:12
by Dixq (管理人)
50CIMAさんから、卒業が近いので協力してほしいとのメールを頂きましたが、
裏で話を進めたり、答えを教えてしまったりするのは良くないと思いますので、こちらで回答致します。
忙しくて早く答えが得たいのは解りますが、
せっかく回答して下さっている方々をそのままに、他の手段に移るのはあまり良い事ではないように思います、
真面目な話で面白くないかもしれませんが、コメントします。
協力してほしいとこことですが、協力して下さる方々はここに沢山いらっしゃいます。
規約さえ守り、やる気の姿勢でいれば皆さん積極的に教えて下さると思いますよ。
後、まず、聞かれたことにはなるべく漏れなく答えるようにして下さい。
必要があるから聞いているので、別に答えなくてもいいような事をわざわざ回答者は質問しません。
規約違反してすみませんと、記述がありましたが、結局softyaさんのご指摘内容はそのままで、何も対処されていません。
忙しいのは解りますが、やるべき事がやはりなされていないので、回答者が協力しようという気がそがれてしまい、
結局非効率になってしまっているように思います。
この課題をやる時間というものをしっかり確保し、課題をやる時は課題に集中しましょう。
それと、回答者は質問者のスキルが解らないと回答がしにくいのです。
例えば
「グラフを書きたいんですが、どうしたらいいですか?」
「OpenGLを使ってください」
「OpenGLって何ですか?」
みたいなやり取りが続くかもしれません。
質問者に適切な回答が出来ないのです。
私が上で聞いた事はその為です。ですから、その質問にお答えいただきたかったのです。
後、何に出力するのかということも解らないと答えようがないです。
それと、ただ初心者といっても、幅があると思います。
謙遜で言ってて実は中規模程度のソフト開発の経験ならあるのかもしれないし、
一行もプログラムを書いた事がないのかもしれないし。
「初心者です」だけ書いてあっても解らないんですよね。
ですから、どんな経験があって、何なら出来るのか、何をしたいのかを明確にしましょう。
・・と、こんな話ばかりしても面白くないでしょうから・・。
って回答にうつりたいのですが、まだ情報が足りなくて回答が出来ないのです。
エクセルにするのか、自分でグラフを書くのか、書くならライブラリはどうするのか、
そういうことも全て分からないので教えてくれだとか(その場合どのような完成像を思い描いているか明確に)
教えて下さい。
Re:三角関数
Posted: 2009年12月08日(火) 19:56
by たかぎ
> 丸囲み数字はMacだと正しく表示されませんのでこういうところではあまり使わないほうがいいですよ。
Macでもちゃんと表示できていますよ。
まあ、それでも避けたほうが良いでしょうね。
Re:三角関数
Posted: 2009年12月09日(水) 10:05
by non
前にもいいましたが、C言語でグラフを描かなければいけない理由がわからない。
卒研のための手段のはず。ただ単にデータとして、グラフが欲しいのではないの?
参考までにEXCELでグラフを描いてみた。式の意味が私にはわからないので、
あっているかはわからない。
Re:三角関数
Posted: 2009年12月10日(木) 14:50
by 50CIMA
みなさん、いろいろとアドバイスしていただいてありがとうございました。
いままで楽しようとにげている自分がいました。
みなさんの意見を参考にさしてもらい、自分の力でがんばってみようと思います。
また、質問がでてくるかもしれないですが、そのときはお世話になると思うので、よろしくおねがいします。
管理人様、貴重なスペースありがとうございました。
Re:三角関数
Posted: 2009年12月10日(木) 23:34
by Dixq (管理人)
あら・・小言が多くて気を悪くさせてしまいましたかね^^;
卒論に間に合わないようですが、大丈夫ですか?
何で出力したいのかなどの詳細な仕様が解れば何とかアドバイス出来ると思うのですが・・