|
#include<stdio.h>
main()
{
int a[100]={0,};
int n,i,p,q,j;
double z,s,t,sum;
printf("n= ");
scanf("%d",&n);
for(i=0;i<n+1;i++)
{
printf("a%d=",i);
scanf("%d",&a[i]);
}
printf("b1=");
scanf("%d",&p);
printf("b2=");
scanf("%d",&q);
t=(q-p)*10000;
for(i=0;i<t+1;i++)
{
z=p+(i*0.0001);
for(j=0;j<n+1;j++)
{
s+=a[j]*pow(z,j);
}
sum+=s*0.0001;
}
printf("%.3f\n",sum);
}
n차 연립 방정식의 적분값을 구하는 프로그램을 짤려고 합니다.
a0~an 은 엑스 영승의 계수에서 ~ 엑스 n승의 계수입니다.
그리고 b1,b2는 적분할려고 하는 구간이이구요.
b1 과 b2 사이를 0.0001의 간격으로 나눈다고 생각하고요.
b1에서 0.0001씩 증가시킨값을 식에 대입해서 나온값에 0.0001를 곱해서 하나의 직사각형을 만들어 냅니다.
이런 직사각형을 전부 더하면 적분이 되는거죠.
구분구적법이라고 하나요..하이튼 이런씩이 되게 프로그램을 짰습니다.
나름대론 맞다고 생각하고 해보았는데 결과치가 도저히 안 맞는군요..왜 그런지 모르겠습니다.
저번에도 이거 할려다 꼴아 박은적 있거든요.
뭐가 잘못됐느지 몰르겠습니다. 조언 좀 해주세요.
|