#include"iostream.h"
#include"fstream.h"
#define N 100
float X[N],Y[N],M[N],a,b;
double f(int i,int j)
{
double sum1=0;
if(j-i==1) return (Y[j]-Y[i])/(X[j]-X[i]);
else return (f(i+1,j)-f(i,j-1))/(X[j]-X[i]);
}
void main()
{
ifstream istrm("E:\\data.txt");//这里是文件的输入,请相应改成普通键盘输入
int n=3;
for(int i=0;i<=n;i++)
istrm>>X[i]>>Y[i];
istrm>>a>>b;
float h[N],u[N],q[N],d[N];
for(i=0;i<n;i++)
h[i]=X[i+1]-X[i];
q[0]=1;q[n]=0;
for(i=1;i<n;i++)
q[i]=h[i]/(h[i-1]+h[i]);
for(i=0;i<=n;i++)
u[i]=1-q[i];
d[0]=(6*(f(0,1)-a))/h[0];
d[n]=(6*(b-f(n-1,n)))/h[n-1];
for(i=1;i<n;i++)
d[i]=6*f(i-1,i+1);
float m[N];
for(i=0;i<=n;i++) m[i]=2;
for(i=1;i<=n;i++)
{
m[i]=m[i]-(u[i]/m[i-1])*q[i-1];
d[i]=d[i]-(u[i]/m[i-1])*d[i-1];
}
M[n]=d[n]/m[n];
cout<<M[n]<<endl;
for(i=n-1;i>=0;i--)
{
M[i]=(d[i]-q[i]*M[i+1])/m[i];
cout<<M[i]<<endl;
}
}
posted on 2007-06-09 12:16
星梦情缘 阅读(6054)
评论(4) 编辑 收藏 引用 所属分类:
数据结构的所有实现程序