K 0 1 2 3 4
X 0.5 0.6 0.7 0.8 0.9
Y 1.6487 1.8221 2.0138 2.2255 2.4596
程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MN
int FormProblem(double*X,double*Y,int MN)
{int TableSize;
TableSize=5;
if(TableSize>=MN)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[0]=1.8221;
X[2]=0.7;Y[0]=2.0138;
X[3]=0.8;Y[0]=2.2255;
X[4]=0.9;Y[0]=2.4596;
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double*X,double*Y,double*F,int n)
{int k,j;
for(k=0;k<n;k++)F[k]=Y[k];
for(k=1;k<n;k++)
for(j=0;j<k;j++)
F[k]=(F[k]-F[j])/(X[k]-X[j]);
return 0;
}
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
double X0,Y0;
int GetDQT(double*X,double*Y,double*F,int N){...}
double Operation(double x)
{int k;
double state=1.0,y=0;
X0=x;
or(k=0;k<RN;k++)
{NB[k]=state;
NT[k]=F[k]*NB[k];
y+=NT[k];
state*=x-X[k];
}
Y0=y;
return Y0;
}
ShowTable(){...}
mian()
{double x,y;
x=0.55;
RN=FormProblem(X,Y,MN);
if(RN>MN)return;
GetDQT(X,Y,F,RN);
y=Operation(x);
ShowTable();
getchar();
return;
}
出错,好象是定义的毛病,请各位一定尽快回复,帮小弟纠正错误...感谢
27 个解决方案
#1
????没人知道吗??不会吧
#2
mian?
or?
把出错的代码贴出来把
or?
把出错的代码贴出来把
#3
昏啊,大哥们,帮帮我吧
#4
急啊,谁能帮帮我......海啸来了!!!!!!!!!!!
#5
可以重新给你编写吗?
#6
为什么?麻烦大哥运行下,我实在搞不懂了,应该是定义的问题
#7
原代码都不全的.报什么错误啊.
#8
我已经运行过了,错误太多了,我想你是出在算法和定义之中,所以我我想给你重新写一个
#9
谢谢了,重写一个吧,兄弟,谢谢了,我在线等待
#10
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MN
int FormProblem(double *X,double *Y,int MN)
{
int TableSize = 5;
if(TableSize > MN) return 0;
// {
// return 0;
// }
// if( TableSize > MN )
// {
// return 0;
// }
X[0]=0.5;
Y[0]=1.6487;
X[1]=0.6;
Y[0]=1.8221;
X[2]=0.7;
Y[0]=2.0138;
X[3]=0.8;
Y[0]=2.2255;
X[4]=0.9;
Y[0]=2.4596;
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double *X,double *Y,double *F,int n)
{
int k,j;
for(k=0;k<n;k++)
{
F[k]=Y[k];
}
for(k = 1; k < n; k++)
{
for(j = 0; j < k; j++)
{
F[k] = (F[k] - F[j]) / (X[k] - X[j]);
}
}
return 0;
}
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
double X0,Y0;
//
//int GetDQT(double*X,double*Y,double*F,int N)
//{
// return 0; // lz£¬³ÌÐòÖªµÀÄã...ÊÇʲôÒâ˼°¡
//}
double Operation(double x)
{
int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{
NB[k] = state;
NT[k] = F[k]*NB[k];
y += NT[k];
state *= (x-X[k]);
}
Y0=y;
return Y0;
}
// ÕâÀïµÄº¯ÊýÊÇʲô°¡£¿
//ShowTable(){...}
int main(int argc, char * argv[])
{
double x,y;
x=0.55;
int RN = FormProblem(X,Y,MN);
if(RN > MN)
return 0;
GetDQT(X,Y,F,RN);
y = Operation(x);
// ShowTable();
// getchar();
system("pause");
return 0;
}
好多伪代码,
#include <stdlib.h>
#include <math.h>
#define MN
int FormProblem(double *X,double *Y,int MN)
{
int TableSize = 5;
if(TableSize > MN) return 0;
// {
// return 0;
// }
// if( TableSize > MN )
// {
// return 0;
// }
X[0]=0.5;
Y[0]=1.6487;
X[1]=0.6;
Y[0]=1.8221;
X[2]=0.7;
Y[0]=2.0138;
X[3]=0.8;
Y[0]=2.2255;
X[4]=0.9;
Y[0]=2.4596;
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double *X,double *Y,double *F,int n)
{
int k,j;
for(k=0;k<n;k++)
{
F[k]=Y[k];
}
for(k = 1; k < n; k++)
{
for(j = 0; j < k; j++)
{
F[k] = (F[k] - F[j]) / (X[k] - X[j]);
}
}
return 0;
}
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
double X0,Y0;
//
//int GetDQT(double*X,double*Y,double*F,int N)
//{
// return 0; // lz£¬³ÌÐòÖªµÀÄã...ÊÇʲôÒâ˼°¡
//}
double Operation(double x)
{
int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{
NB[k] = state;
NT[k] = F[k]*NB[k];
y += NT[k];
state *= (x-X[k]);
}
Y0=y;
return Y0;
}
// ÕâÀïµÄº¯ÊýÊÇʲô°¡£¿
//ShowTable(){...}
int main(int argc, char * argv[])
{
double x,y;
x=0.55;
int RN = FormProblem(X,Y,MN);
if(RN > MN)
return 0;
GetDQT(X,Y,F,RN);
y = Operation(x);
// ShowTable();
// getchar();
system("pause");
return 0;
}
好多伪代码,
#11
????该怎么写啊
#12
你对于问题的叙述还不够清楚,能够说清楚点吗?
#13
能不能把代码全贴出来呀
#14
某函数y=f(x)的一组对应值如下,试用牛顿插值法求f(0.55)近似值。
K 0 1 2 3 4
X 0.5 0.6 0.7 0.8 0.9
Y 1.6487 1.8221 2.0138 2.2255 2.4596
就按照这个要求写啊,我写的是错误的,但我又找不到原因...所以求救啊
K 0 1 2 3 4
X 0.5 0.6 0.7 0.8 0.9
Y 1.6487 1.8221 2.0138 2.2255 2.4596
就按照这个要求写啊,我写的是错误的,但我又找不到原因...所以求救啊
#15
晕呀
求问题不要偷赖呀
牛顿插值法我可记不得了
求问题不要偷赖呀
牛顿插值法我可记不得了
#16
就你贴出来的那个???你写的??
运行不出错才叫怪!
运行不出错才叫怪!
#17
朋友们,来点实际的,帮忙写写吧
#18
#define MN
int FormProblem(double*X,double*Y,int MN)
{int TableSize;
TableSize=5;
if(TableSize>=MN)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[0]=1.8221;
X[2]=0.7;Y[0]=2.0138;
X[3]=0.8;Y[0]=2.2255;
X[4]=0.9;Y[0]=2.4596;
return TableSize;
}
MN 应该有个具体值吧!
int FormProblem(double*X,double*Y,int MN)
{int TableSize;
TableSize=5;
if(TableSize>=MN)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[0]=1.8221;
X[2]=0.7;Y[0]=2.0138;
X[3]=0.8;Y[0]=2.2255;
X[4]=0.9;Y[0]=2.4596;
return TableSize;
}
MN 应该有个具体值吧!
#19
按照你所给出问题应该是一个数据拟合问题,一般采用直线插值或抛物线插值法。而牛顿法一般用于已知函数的求解
#20
恩,朋友们,能写的就帮我写出来下吧,能改的就改下,非常感谢了,感谢
#21
mn 21
#22
没人写出来,晕
#23
下面是程序的简单实现:
#include<iostream>
#define N 4
using namespace std;
double NewtonInsert(double* x,double *y,double xx,int n)
{
double a[N][N];
for(int i=0;i<n;i++)
{
a[i][0]=y[i];
cout<<a[i][0]<<endl;
for(int j=1;j<=i;j++)
{
a[i][j]=(a[i][j-1]-a[i-1][j-1])/(x[i]-x[i-j]);
//cout<<"i="<<i<<","<<"j="<<j<<","<<a[i][j]<<endl;
}
}
double sum=y[0],v=1.0;
for(int i=1;i<=n;i++)
{
v*=(xx-x[i-1]);
//cout<<"v="<<v<<endl;
sum+=v*a[i][i];
//cout<<"sum="<<sum<<endl;
}
return sum;
}
void main()
{
double x[]={0.5,0.6,0.7,0.8,0.9};
double y[]={1.6487,1.8221,2.0138,2.2255,2.4596};
cout<<NewtonInsert(x,y,0.55,N)<<endl;
}
#include<iostream>
#define N 4
using namespace std;
double NewtonInsert(double* x,double *y,double xx,int n)
{
double a[N][N];
for(int i=0;i<n;i++)
{
a[i][0]=y[i];
cout<<a[i][0]<<endl;
for(int j=1;j<=i;j++)
{
a[i][j]=(a[i][j-1]-a[i-1][j-1])/(x[i]-x[i-j]);
//cout<<"i="<<i<<","<<"j="<<j<<","<<a[i][j]<<endl;
}
}
double sum=y[0],v=1.0;
for(int i=1;i<=n;i++)
{
v*=(xx-x[i-1]);
//cout<<"v="<<v<<endl;
sum+=v*a[i][i];
//cout<<"sum="<<sum<<endl;
}
return sum;
}
void main()
{
double x[]={0.5,0.6,0.7,0.8,0.9};
double y[]={1.6487,1.8221,2.0138,2.2255,2.4596};
cout<<NewtonInsert(x,y,0.55,N)<<endl;
}
#24
#define MN
int FormProblem(double*X,double*Y,int MN)
问题就在这里了!MN应该是一个预定义宏吧?MN代表的内容是什么呢?而函数定义里的MN肯定会把MN宏覆盖!
这样的话类相似:
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
这样的定义,全部都是错误的!数组的成员个数一定是在编译时刻就决定了。而你的数组成员个数直到运行时刻才能确定。
不要依赖别人给你写现成的代码,对你一点好处都没有。如果想来csdn上偷懒,还是放弃这个念头。这里的高手们不是每天吃饱没事干在这里等着别人问问题。他们忙得很。在得到指点之后还使用自己的脑袋好好想想。谁也代替不了你!
int FormProblem(double*X,double*Y,int MN)
问题就在这里了!MN应该是一个预定义宏吧?MN代表的内容是什么呢?而函数定义里的MN肯定会把MN宏覆盖!
这样的话类相似:
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
这样的定义,全部都是错误的!数组的成员个数一定是在编译时刻就决定了。而你的数组成员个数直到运行时刻才能确定。
不要依赖别人给你写现成的代码,对你一点好处都没有。如果想来csdn上偷懒,还是放弃这个念头。这里的高手们不是每天吃饱没事干在这里等着别人问问题。他们忙得很。在得到指点之后还使用自己的脑袋好好想想。谁也代替不了你!
#25
我已经给你写好了,你为什么不好好看看;
#26
#define MN 15 //--------------
int FormProblem(double X[MN],double Y[MN],int N) //-----
{ int TableSize;
TableSize=5;
if(TableSize>=N)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[1]=1.8221; //---------
X[2]=0.7;Y[2]=2.0138; //---------
X[3]=0.8;Y[3]=2.2255; //---------
X[4]=0.9;Y[4]=2.4596; //---------
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double X[MN],double Y[MN],double F[MN],int n) //---可不改---
{int k,j;
for(k=0;k<n;k++)F[k]=Y[k];
for(k=1;k<n;k++)
for(j=0;j<k;j++)
F[k]=(F[k]-F[j])/(X[k]-X[j]);
return 0;
}
double // X[MN],Y[MN],F[MN], //-------
NB[MN],NT[MN];
double X0,Y0;
//int GetDQT(double*X,double*Y,double*F,int N){...}
double Operation(double x)
{int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{NB[k]=state;
NT[k]=F[k]*NB[k];
y+=NT[k];
state*=x-X[k];
}
Y0=y;
return Y0;
}
ShowTable(){...}
int main() //-----------
{double x,y;
x=0.55;
RN=FormProblem(X,Y,MN);
if(RN>MN)return 1;
GetDQT(X,Y,F,RN);
y=Operation(x);
ShowTable();
getchar();
return 0;
}
int FormProblem(double X[MN],double Y[MN],int N) //-----
{ int TableSize;
TableSize=5;
if(TableSize>=N)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[1]=1.8221; //---------
X[2]=0.7;Y[2]=2.0138; //---------
X[3]=0.8;Y[3]=2.2255; //---------
X[4]=0.9;Y[4]=2.4596; //---------
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double X[MN],double Y[MN],double F[MN],int n) //---可不改---
{int k,j;
for(k=0;k<n;k++)F[k]=Y[k];
for(k=1;k<n;k++)
for(j=0;j<k;j++)
F[k]=(F[k]-F[j])/(X[k]-X[j]);
return 0;
}
double // X[MN],Y[MN],F[MN], //-------
NB[MN],NT[MN];
double X0,Y0;
//int GetDQT(double*X,double*Y,double*F,int N){...}
double Operation(double x)
{int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{NB[k]=state;
NT[k]=F[k]*NB[k];
y+=NT[k];
state*=x-X[k];
}
Y0=y;
return Y0;
}
ShowTable(){...}
int main() //-----------
{double x,y;
x=0.55;
RN=FormProblem(X,Y,MN);
if(RN>MN)return 1;
GetDQT(X,Y,F,RN);
y=Operation(x);
ShowTable();
getchar();
return 0;
}
#27
学习
#1
????没人知道吗??不会吧
#2
mian?
or?
把出错的代码贴出来把
or?
把出错的代码贴出来把
#3
昏啊,大哥们,帮帮我吧
#4
急啊,谁能帮帮我......海啸来了!!!!!!!!!!!
#5
可以重新给你编写吗?
#6
为什么?麻烦大哥运行下,我实在搞不懂了,应该是定义的问题
#7
原代码都不全的.报什么错误啊.
#8
我已经运行过了,错误太多了,我想你是出在算法和定义之中,所以我我想给你重新写一个
#9
谢谢了,重写一个吧,兄弟,谢谢了,我在线等待
#10
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MN
int FormProblem(double *X,double *Y,int MN)
{
int TableSize = 5;
if(TableSize > MN) return 0;
// {
// return 0;
// }
// if( TableSize > MN )
// {
// return 0;
// }
X[0]=0.5;
Y[0]=1.6487;
X[1]=0.6;
Y[0]=1.8221;
X[2]=0.7;
Y[0]=2.0138;
X[3]=0.8;
Y[0]=2.2255;
X[4]=0.9;
Y[0]=2.4596;
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double *X,double *Y,double *F,int n)
{
int k,j;
for(k=0;k<n;k++)
{
F[k]=Y[k];
}
for(k = 1; k < n; k++)
{
for(j = 0; j < k; j++)
{
F[k] = (F[k] - F[j]) / (X[k] - X[j]);
}
}
return 0;
}
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
double X0,Y0;
//
//int GetDQT(double*X,double*Y,double*F,int N)
//{
// return 0; // lz£¬³ÌÐòÖªµÀÄã...ÊÇʲôÒâ˼°¡
//}
double Operation(double x)
{
int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{
NB[k] = state;
NT[k] = F[k]*NB[k];
y += NT[k];
state *= (x-X[k]);
}
Y0=y;
return Y0;
}
// ÕâÀïµÄº¯ÊýÊÇʲô°¡£¿
//ShowTable(){...}
int main(int argc, char * argv[])
{
double x,y;
x=0.55;
int RN = FormProblem(X,Y,MN);
if(RN > MN)
return 0;
GetDQT(X,Y,F,RN);
y = Operation(x);
// ShowTable();
// getchar();
system("pause");
return 0;
}
好多伪代码,
#include <stdlib.h>
#include <math.h>
#define MN
int FormProblem(double *X,double *Y,int MN)
{
int TableSize = 5;
if(TableSize > MN) return 0;
// {
// return 0;
// }
// if( TableSize > MN )
// {
// return 0;
// }
X[0]=0.5;
Y[0]=1.6487;
X[1]=0.6;
Y[0]=1.8221;
X[2]=0.7;
Y[0]=2.0138;
X[3]=0.8;
Y[0]=2.2255;
X[4]=0.9;
Y[0]=2.4596;
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double *X,double *Y,double *F,int n)
{
int k,j;
for(k=0;k<n;k++)
{
F[k]=Y[k];
}
for(k = 1; k < n; k++)
{
for(j = 0; j < k; j++)
{
F[k] = (F[k] - F[j]) / (X[k] - X[j]);
}
}
return 0;
}
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
double X0,Y0;
//
//int GetDQT(double*X,double*Y,double*F,int N)
//{
// return 0; // lz£¬³ÌÐòÖªµÀÄã...ÊÇʲôÒâ˼°¡
//}
double Operation(double x)
{
int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{
NB[k] = state;
NT[k] = F[k]*NB[k];
y += NT[k];
state *= (x-X[k]);
}
Y0=y;
return Y0;
}
// ÕâÀïµÄº¯ÊýÊÇʲô°¡£¿
//ShowTable(){...}
int main(int argc, char * argv[])
{
double x,y;
x=0.55;
int RN = FormProblem(X,Y,MN);
if(RN > MN)
return 0;
GetDQT(X,Y,F,RN);
y = Operation(x);
// ShowTable();
// getchar();
system("pause");
return 0;
}
好多伪代码,
#11
????该怎么写啊
#12
你对于问题的叙述还不够清楚,能够说清楚点吗?
#13
能不能把代码全贴出来呀
#14
某函数y=f(x)的一组对应值如下,试用牛顿插值法求f(0.55)近似值。
K 0 1 2 3 4
X 0.5 0.6 0.7 0.8 0.9
Y 1.6487 1.8221 2.0138 2.2255 2.4596
就按照这个要求写啊,我写的是错误的,但我又找不到原因...所以求救啊
K 0 1 2 3 4
X 0.5 0.6 0.7 0.8 0.9
Y 1.6487 1.8221 2.0138 2.2255 2.4596
就按照这个要求写啊,我写的是错误的,但我又找不到原因...所以求救啊
#15
晕呀
求问题不要偷赖呀
牛顿插值法我可记不得了
求问题不要偷赖呀
牛顿插值法我可记不得了
#16
就你贴出来的那个???你写的??
运行不出错才叫怪!
运行不出错才叫怪!
#17
朋友们,来点实际的,帮忙写写吧
#18
#define MN
int FormProblem(double*X,double*Y,int MN)
{int TableSize;
TableSize=5;
if(TableSize>=MN)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[0]=1.8221;
X[2]=0.7;Y[0]=2.0138;
X[3]=0.8;Y[0]=2.2255;
X[4]=0.9;Y[0]=2.4596;
return TableSize;
}
MN 应该有个具体值吧!
int FormProblem(double*X,double*Y,int MN)
{int TableSize;
TableSize=5;
if(TableSize>=MN)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[0]=1.8221;
X[2]=0.7;Y[0]=2.0138;
X[3]=0.8;Y[0]=2.2255;
X[4]=0.9;Y[0]=2.4596;
return TableSize;
}
MN 应该有个具体值吧!
#19
按照你所给出问题应该是一个数据拟合问题,一般采用直线插值或抛物线插值法。而牛顿法一般用于已知函数的求解
#20
恩,朋友们,能写的就帮我写出来下吧,能改的就改下,非常感谢了,感谢
#21
mn 21
#22
没人写出来,晕
#23
下面是程序的简单实现:
#include<iostream>
#define N 4
using namespace std;
double NewtonInsert(double* x,double *y,double xx,int n)
{
double a[N][N];
for(int i=0;i<n;i++)
{
a[i][0]=y[i];
cout<<a[i][0]<<endl;
for(int j=1;j<=i;j++)
{
a[i][j]=(a[i][j-1]-a[i-1][j-1])/(x[i]-x[i-j]);
//cout<<"i="<<i<<","<<"j="<<j<<","<<a[i][j]<<endl;
}
}
double sum=y[0],v=1.0;
for(int i=1;i<=n;i++)
{
v*=(xx-x[i-1]);
//cout<<"v="<<v<<endl;
sum+=v*a[i][i];
//cout<<"sum="<<sum<<endl;
}
return sum;
}
void main()
{
double x[]={0.5,0.6,0.7,0.8,0.9};
double y[]={1.6487,1.8221,2.0138,2.2255,2.4596};
cout<<NewtonInsert(x,y,0.55,N)<<endl;
}
#include<iostream>
#define N 4
using namespace std;
double NewtonInsert(double* x,double *y,double xx,int n)
{
double a[N][N];
for(int i=0;i<n;i++)
{
a[i][0]=y[i];
cout<<a[i][0]<<endl;
for(int j=1;j<=i;j++)
{
a[i][j]=(a[i][j-1]-a[i-1][j-1])/(x[i]-x[i-j]);
//cout<<"i="<<i<<","<<"j="<<j<<","<<a[i][j]<<endl;
}
}
double sum=y[0],v=1.0;
for(int i=1;i<=n;i++)
{
v*=(xx-x[i-1]);
//cout<<"v="<<v<<endl;
sum+=v*a[i][i];
//cout<<"sum="<<sum<<endl;
}
return sum;
}
void main()
{
double x[]={0.5,0.6,0.7,0.8,0.9};
double y[]={1.6487,1.8221,2.0138,2.2255,2.4596};
cout<<NewtonInsert(x,y,0.55,N)<<endl;
}
#24
#define MN
int FormProblem(double*X,double*Y,int MN)
问题就在这里了!MN应该是一个预定义宏吧?MN代表的内容是什么呢?而函数定义里的MN肯定会把MN宏覆盖!
这样的话类相似:
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
这样的定义,全部都是错误的!数组的成员个数一定是在编译时刻就决定了。而你的数组成员个数直到运行时刻才能确定。
不要依赖别人给你写现成的代码,对你一点好处都没有。如果想来csdn上偷懒,还是放弃这个念头。这里的高手们不是每天吃饱没事干在这里等着别人问问题。他们忙得很。在得到指点之后还使用自己的脑袋好好想想。谁也代替不了你!
int FormProblem(double*X,double*Y,int MN)
问题就在这里了!MN应该是一个预定义宏吧?MN代表的内容是什么呢?而函数定义里的MN肯定会把MN宏覆盖!
这样的话类相似:
double X[MN],Y[MN],F[MN],NB[MN],NT[MN];
这样的定义,全部都是错误的!数组的成员个数一定是在编译时刻就决定了。而你的数组成员个数直到运行时刻才能确定。
不要依赖别人给你写现成的代码,对你一点好处都没有。如果想来csdn上偷懒,还是放弃这个念头。这里的高手们不是每天吃饱没事干在这里等着别人问问题。他们忙得很。在得到指点之后还使用自己的脑袋好好想想。谁也代替不了你!
#25
我已经给你写好了,你为什么不好好看看;
#26
#define MN 15 //--------------
int FormProblem(double X[MN],double Y[MN],int N) //-----
{ int TableSize;
TableSize=5;
if(TableSize>=N)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[1]=1.8221; //---------
X[2]=0.7;Y[2]=2.0138; //---------
X[3]=0.8;Y[3]=2.2255; //---------
X[4]=0.9;Y[4]=2.4596; //---------
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double X[MN],double Y[MN],double F[MN],int n) //---可不改---
{int k,j;
for(k=0;k<n;k++)F[k]=Y[k];
for(k=1;k<n;k++)
for(j=0;j<k;j++)
F[k]=(F[k]-F[j])/(X[k]-X[j]);
return 0;
}
double // X[MN],Y[MN],F[MN], //-------
NB[MN],NT[MN];
double X0,Y0;
//int GetDQT(double*X,double*Y,double*F,int N){...}
double Operation(double x)
{int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{NB[k]=state;
NT[k]=F[k]*NB[k];
y+=NT[k];
state*=x-X[k];
}
Y0=y;
return Y0;
}
ShowTable(){...}
int main() //-----------
{double x,y;
x=0.55;
RN=FormProblem(X,Y,MN);
if(RN>MN)return 1;
GetDQT(X,Y,F,RN);
y=Operation(x);
ShowTable();
getchar();
return 0;
}
int FormProblem(double X[MN],double Y[MN],int N) //-----
{ int TableSize;
TableSize=5;
if(TableSize>=N)return 0;
X[0]=0.5;Y[0]=1.6487;
X[1]=0.6;Y[1]=1.8221; //---------
X[2]=0.7;Y[2]=2.0138; //---------
X[3]=0.8;Y[3]=2.2255; //---------
X[4]=0.9;Y[4]=2.4596; //---------
return TableSize;
}
int RN=0;
double X[MN],Y[MN],F[MN];
int GetDQT(double X[MN],double Y[MN],double F[MN],int n) //---可不改---
{int k,j;
for(k=0;k<n;k++)F[k]=Y[k];
for(k=1;k<n;k++)
for(j=0;j<k;j++)
F[k]=(F[k]-F[j])/(X[k]-X[j]);
return 0;
}
double // X[MN],Y[MN],F[MN], //-------
NB[MN],NT[MN];
double X0,Y0;
//int GetDQT(double*X,double*Y,double*F,int N){...}
double Operation(double x)
{int k;
double state=1.0,y=0;
X0=x;
for(k=0;k<RN;k++)
{NB[k]=state;
NT[k]=F[k]*NB[k];
y+=NT[k];
state*=x-X[k];
}
Y0=y;
return Y0;
}
ShowTable(){...}
int main() //-----------
{double x,y;
x=0.55;
RN=FormProblem(X,Y,MN);
if(RN>MN)return 1;
GetDQT(X,Y,F,RN);
y=Operation(x);
ShowTable();
getchar();
return 0;
}
#27
学习