課題でいろいろな積分方法で面積を求めるのプログラムを作っています。
左端点則での面積を求めるプログラムを作ったのですがうまく実行できません・・・
#include<stdio.h>
#include<math.h>
#define N 100
#define xa 0.0
#define xb 1.0
double f(double);
struct XY
{
double x;
double y;
};
int main(void)
{
int i;
double S=0.0,dx,x;
dx=(xb-xa)/N;
for(i=1;i<2*N;i++)
{
S+=f(x)*dx;
x+=dx;
}
printf("I= %f\n", S);
}
double f(double x)
{
double y;
y=x*x;
return(y);
}
また、右端点則、中点則、台形則、もわかりません・・
助けてください!!
積分
Re:積分
プログラムの最初に
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
#define NUM 0.001
これを書いておいてください。
NUMは刻み幅です。PIは円周率です。mathはsin関数を求める為に必要です。
ここで、sin波のπまでの面積を求めてみましょう。
台形則で書くとこんな感じになります。
難しくないですよね?
どこかわからない箇所があれば言ってください。
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
#define NUM 0.001
これを書いておいてください。
NUMは刻み幅です。PIは円周率です。mathはsin関数を求める為に必要です。
ここで、sin波のπまでの面積を求めてみましょう。
台形則で書くとこんな感じになります。
int main(){ double x,S=0.0; for(x=0.0;x<=PI;x+=NUM) S += (sin(x)+sin(x+NUM))*NUM/2; }さっき言った通りのアルゴリズムです。
難しくないですよね?
どこかわからない箇所があれば言ってください。