想请大神看看编程哪里有问题
∑((P-Q)×(1+x)^(-n))=0。其中,P为已知数(有一列数据,共t个数据),Q为已知数(有一列数据,共t个)。
n=1,2,3……t。
求整个计算式=0的时候,x的值。
#include<stdio.h>
#include<math.h>
float f(float x,float a[][2],int n)
{
int i;
float b=1;
float sum=0;
float y;
for (i=1;i<=n;i++)
{
b=b*(1+x);
y=(a[i][1]-a[i][2])/b;
sum=sum+y;
}
return sum;
}
float f1(float x,float a[][2],int n)
{
int i;
float b=1;
float c,z,rum=0;
for (i=1;i<=n;i++)
{
b=b*(1+x);
c=b*(1+x);
z=(-i)*(a[i][1]-a[i][2])/c;
rum=rum+z;
}
return rum;
}
float Newton(float x,float eps,float a[][2],int n)
{
float x0;
do
{
x0=x;
x=x0-f(x0,a,n)/f1(x0,a,n);
}
while(fabs(x-x0)>=eps);
return x;
}
main()
{
int n,i,j;
float a[1000][2];
printf("input n:\n");
scanf("%d",&n);
printf("input P and Q\n");
for (i=1;i<=n;i++)
{
for (j=1;j<=2;j++)
{
scanf("%f",&a[i][j]);
}
}
float x;
x=Newton(0.3,1.0e-5,a,n);
printf("%f",x);
}
[此贴子已经被作者于2018-8-12 22:37编辑过]