数学関数


今日の演習

以下の内容で演習を行います.



数学関数の使い方

C言語では下記プログラムのように、様々な数学関数を用いることができます.例えば以下のようなプログラムで、三角関数の計算や平方根等の利用ができます。(math-1.c として打ち込んでみてください。)

- - - - - - - - - - - - - - - -

#include <stdio.h>
#include <math.h>

int main()
{
     double pi,a,x,y,z,r;

     pi = 3.1415926;
     a = 3.0;
     r= 10.0;
/*
三角関数の計算 */
     x = r*cos(pi/a);
     y = r*sin(pi/a);
/*
平方根の計算 */
     z = sqrt(x*x + y*y);

     printf("10*sin(pi/3.0)=%lf, 10*cos(pi/3.0)=%lf \n", x, y);
     printf("A square root of (x*x+y*y) is %lf \n", z);

}
- - - - - - - - - - - - - - - -

数学関数を用いる場合には、

#include <math.h> をプログラムの先頭付近に書き入れることと、コンパイル時に、ファイル名を math-1.c とすると、

cc math-1.c -o math-1 -lm

というふうに、最後に -lm を付け足す必要があります.

sin(), cos(), sqrt()の他に, exp(), tan(), log() などいろいろ用意されています。(次回以降、よく使う事になります.

 


課題3

実数x の値の入力を促し、sin(x)cos(x)tan(x)の値を出力するプログラムを作成せよ。

課題4

実数x , hの値の入力を促し、(sin(x + h) – sin(x) )/ hcos(x)の値を出力するプログラムを作成せよ。

また、同じxの値を与えた場合で、h = 0.1, 0.01, 0.001とおいたときの出力を確認せよ。

課題5

二等辺三角形ABCの角Aの大きさをx (rad)、辺ABと辺ACの長さを共にLとする。

xLの値の入力を促し、辺BCの長さを求めるプログラムを作成せよ。

課題6

整数Nの入力を促し、半径10の円に内接する正N角形の周りの長さ、面積を求めるプログラムを作成せよ。

(正四角形、正六角形の場合について正しい答えになっているか、またNが大きい場合に円に近い値をとるか、各自試してみよ)

課題7

実数L>0の入力を促し、|sin(x)|xについて区間[0, L]で積分するプログラムを作成せよ。絶対値は数学関数fabs()をもちいて計算できる。(例:xの絶対値はfabs(x) )

ただし、区間の分割数nは1000であるとする。

 


課題8(応用問題)


下図の灰色の部分の面積(の近似値)を数値的に求めるプログラムを作成せよ。(曲線はそれぞれ y=sin(10*x), y=x*x)
rep1

ただし,分割後の領域の幅は0.001以下となるように分割数をとること。(つまり積分する領域が[0,1]であれば1000分割以上すること)




 


今日学んだ事


戻る