计算方法与实习上机题答案
实习题1
1用两种不容的顺序计算
644834.11000
1
2
≈∑=-n n
,分析误差的变化
〔1〕顺序计算 源代码:
#include
结果:
〔2〕逆序计算 源代码:
#include
if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); }
结果:
2连分数
))//(.../(322101
n n b a a b a b a b f ++++
=
利用下面的方法计算f:
1
1
)0,...,2,1(,d f n n i d a b d b d i i i i n n =--=+==++
写一个程序,读入n,n n b a ,,计算并打印f 源代码:
#include
} printf("\nplease input b[0] to b[n]:\n"); for(i=0;i<=n;i++) { printf("b[%d]=",i); scanf("%f",&b[i]); } d[n]=b[n]; for(i=n-1;i>=0;i--) d[i]=b[i]+a[i+1]/d[i+1]; printf("\nf=%f\n",d[0]); }
结果:
3给出一个有效的算法和一个无效的算法计算积分
⎰=+=10
)
10,...1,0(1
4n dx x x y n n 源代码:
#include
while(1) { y_1=1.0/(4*n)+y_0/(-4.0); printf("y[%d]=%-20f",n,y_1); if(n>=10) break; y_0=y_1; n++; if(n%3==0) printf("\n"); } printf("\n 无效算法的输出结果:\n"); printf("y[10]=%-20f",y_2); while(1) { y_3=1.0/n-4.0*y_2; printf("y[%d]=%-20f",m-1,y_3); if(m<=1) break; y_2=y_3; m--; if(m%2==0) printf("\n"); } }
结果:
4设∑
=-=
N
j N j S 2
2
1
1
,其准确值为)11123(21+--N N (1)编制按从小到大顺序计算N S 的程序 (2)编制按从小到达的顺序计算N S 的程序
(3)按两种顺序分别计算30000100001000,,S S S ,并指出有效位数
源代码:
#include
\nSN[1000]=%f\nSN[10000]=%f\nSN[30000]=%f\n",SN[1000],SN[10000],SN[30000]); SN[2]=(3.0/2-1.0/2.0-1/3.0)/2.0; for(N=3;N<=30000;N++) SN[N]=SN[N-1]+1.0/(N*N-1); printf("从小到大顺序计算:
\nSN[1000]=%f\nSN[10000]=%f\nSN[30000]=%f\n",SN[1000],SN[10000],SN[30000]); }
结果:
实习题2
1.用牛顿法求以下方程的根
2=-x e x
01=-x xe 02lg =-+x x
源代码:
#include
typedef float (*p)(float ); float ff1(float x) { return x*x-exp(x); }
float ff2(float x) { return x*exp(x)-1; }
float ff3(float x) { return log(x)+x-2; }
float answer(float(*p)(float)) { int k=2; float m=1,n=-1,x2,a,b,c; if (p==ff3)n=2; printf("x[0] = %.4f, x[1] = %.4f, ",m,n); while (1) { if (fabs(m-n)<1e-4) break; a=p(n)*(n-m); b=p(n)-p(m); c=a/b; x2=n-c; m = n; n = x2; printf("x[%d] = %.4f, ",k,x2); k++; if (k%3==0) printf("\n"); }
if (k%3!=0) printf("\n");
printf("iteration times: %d, roots: %.4f\n ",k-2,n);
return 0;
}
main()
{
printf("x*x-exp(x),\n");
answer(ff1);
printf("x*exp(x)-1,\n");
answer(ff2);
printf("lg(x)+x-2,\n");
answer(ff3);
return 0;
}
结果:
2.编写一个割线法的程序,求解上述各方程
源代码:
#include
#include
float gexian(float,float);
float f(float);
main()
{
int i,j;
float x1=2.2;
float x2=2,x3;
scanf("%d",&i);
if(i==1)
printf("%f",x1); else if(i==2) printf("%f",x2); else { for(j=3;j<=i;j++) { x3=gexian(x1,x2); x1=x2; x2=x3; } printf("%f",gexian(x1,x2)); } }
float f(float x) { return (x*x-exp(x)); }
float gexian(float x1,float x2) { return (x2-(f(x2)/(f(x2)-f(x1)))*(x2-x1)); }
结果:
实习题3
1用列主元消去法解以下方程组;
⎪⎪⎩⎪⎪⎨
⎧=++=-++--=+--=--+4
3443233312)1(42143214
3214321x x x x x x x x x x x x x x x ⎪⎪⎩⎪⎪⎨
⎧=++--=++-=-+--=-+-4
341220332282)2(4321
3
214
3214321x x x x x x x x x x x x x x x 源程序:
#include
#include
void ColPivot(float*,int,float[]);
void ColPivot(float*c,int n,float x[])
{
int i,j,t,k;
float p;
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))
k=j;
if(k!=i)
for(j=i;j<=n;j++)
{
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j<=n-1;j++)
{
p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
for(t=i;t<=n;t++)
*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));
}
}
for(i=n-1;i>=0;i--)
{
for(j=n-1;j>=i+1;j--)
(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));
x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));
}
}
void main()
{
int i;
float x[4];
float c[4][5]={1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4};
ColPivot(c[0],4,x);
for(i=0;i<=3;i++)
printf("x[%d]=%f\n",i,x[i]);
}
结果:
第〔1〕题
第〔2〕题
2、
源代码:
#include
void main()
{
float x[4];
int i;
float a[4][5]={48,-24,0,-12,4,-24,24,12,12,4,0,6,20,2,-2,-6,6,2,16,-2};
void DirectLU(float*,int,float[]);
DirectLU(a[0],4,x);
for(i=0;i<=3;i++)
printf("x[%d]=%f\n",i,x[i]);
}
void DirectLU(float*u,int n,float x[])
{
int i,r,k;
for(r=0;r<=n-1;r++)
{
for(i=r;r<=n;i++)
for(k=0;k<=r-1;k++)
*(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i));
for(i=r+1;i<=n-1;i++)
{
for(k=0;k<=r-1;k++)
*(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r));
*(u+i*(n+1)+r)/=*(u+r*(n+1)+r);
}
}
for(i=n-1;i>=0;i--)
{
for(r=n-1;r>=i+1;r--)
*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r];
x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i));
}
}
实习题4
1、
源代码:
#include
float Lagrange(float x[],float y[],float xx,int n) //n为〔n+1〕次插值;{
int i,j;
float *a,yy=0;
a=new float[n];
for(i=0;i<=n-1;i++)
{
a[i]=y[i];
for(j=0;j<=n-1;j++)
if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);
yy+=a[i];
}
delete a;
return yy;
}
void main()
{
float x[5]={-3.0,-1.0,1.0,2.0,3.0};
float y[5]={1.0,1.5,2.0,2.0,1.0};
float xx1=-2,xx2=0,xx3=2.75,yy1,yy2,yy3;
yy1=Lagrange(x,y,xx1,3);
yy2=Lagrange(x,y,xx2,3);
yy3=Lagrange(x,y,xx3,3);
printf("x1=%-20f,y1=%f\n",xx1,yy1);
printf("x2=%-20f,y2=%f\n",xx2,yy2);
printf("x3=%-20f,y3=%f\n",xx3,yy3);
}
结果:
2、
源代码:
#include
float Lagrange(float x[],float y[],float xx,int n) //n为〔n+1〕次插值;{
int i,j;
float *a,yy=0;
a=new float[n];
for(i=0;i<=n-1;i++)
{
a[i]=y[i];
for(j=0;j<=n-1;j++)
if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);
yy+=a[i];
}
delete a;
return yy;
}
void main()
{
float x[6]={0.30,0.42,0.50,0.58,0.66,0.72};
float y[6]={1.04403,1.08462,1.11803,1.15603,1.19817,1.23223};
float xx1=0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3;
yy1=Lagrange(x,y,xx1,6);
yy2=Lagrange(x,y,xx2,6);
yy3=Lagrange(x,y,xx3,6);
printf("x1=%-20f,y1=%f\n",xx1,yy1);
printf("x2=%-20f,y2=%f\n",xx2,yy2);
printf("x3=%-20f,y3=%f\n",xx3,yy3);
}
结果:
源代码:
#include
#define N 3
void Difference(float y[],float f[4][4],int n)
{
int k,i;
f[0][0]=y[0];f[1][0]=y[1];f[2][0]=y[2];f[3][0]=y[3];
for(k=1;k<=n;k++)
for(i=0;i<=(N-k);i++)
f[i][k]=f[i+1][k-1]-f[i][k-1];
return;
}
void main()
{
int i,k=1;
float a,b=1,m=21.4,t=1.4,f[4][4]={0};
float x[5]={20,21,22,23,24};
float y[5]={1.30103,1.32222,1.34242,1.36173,1.38021};
Difference(y,f,N);
a=f[0][0];
for(i=1;i<=N;i++)
{
k=k*i;
b=b*(t-i+1);
a=a+b*f[0][i]/k;
}
printf("x(k)\n");
for (i=0;i<=4;i++)
printf( "%-20f",x[i]);
printf("\ny(k)\n");
for (i=0;i<=4;i++)
printf("%-20f",y[i]);
for(k=1;k<=3;k++)
{
printf("\nF(%d)\n ",k);
for(i=0;i<=(3-k);i++)
{
printf("%-20f",f[i][k]);
}
}
printf ("\n");
printf("f(%f)=%-20f",m,a);
printf ("\n");
结果:
实习题5
2、
源代码:
#include
#include
void main()
{
int i,n;
float a[2];
float x[15]={1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8},z[15];
float
y[15]={33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.40,310. 40,318.15,325.15};
for(n=0;n<=14;n++) //增加了数组z;
{
z[n]=log(y[n]/x[n]);
}
void Approx(float[],float[],int,int,float[]);
Approx(x,z,15,1,a); //变成一次拟合;
//for(i=0;i<=1;i++)
//printf("a[%d]=%f\n",i,a[i]);
printf("a=exp(a[0])=%f\n",exp(a[0]));
printf("b=-a[1]=%f\n",-a[1]); }
void Approx(float x[],float y[],int m,int n,float a[])
{
int i,j,t;
float *c=new float[(n+1)*(n+2)];
float power(int,float);
void ColPivot(float *,int,float[]);
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
{
*(c+i*(n+2)+j)=0;
for(t=0;t<=m-1;t++)
*(c+i*(n+2)+j)+=power(i+j,x[t]);
}
*(c+i*(n+2)+n+1)=0;
for(j=0;j<=m-1;j++)
*(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]);
}
ColPivot(c,n+1,a);
delete c;
}
void ColPivot(float *c,int n,float x[])
{
int i,j,t,k;
float p;
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))
k=j;
if(k!=i)
for(j=i;j<=n;j++)
{
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j<=n-1;j++)
{
p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
for(t=i;t<=n;t++)*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));
}
}
for(i=n-1;i>=0;i--)
{
for(j=n-1;j>=i+1;j--)
(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));
x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));
}
float power(int i,float v)
{
float a=1;
while(i--)a*=v;
return a;
}
结果:
实习题6
1、
源代码:
〔1〕
#include
#include
float Cotes(float(*f)(float),float a,float b,int n)
{
int k;
float c,c1=0,c2,c3,c4;
float h=(b-a)/n;
c2=(*f)(a+h/4);
c3=(*f)(a+h/2);
c4=(*f)(a+3*h/4);
for(k=1;k<=n-1;k++)
{
c1+=(*f)(a+k*h);
c2+=(*f)(a+k*h+h/4);
c3+=(*f)(a+k*h+h/2);
c4+=(*f)(a+k*h+3*h/4);
}
c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);
return c;
}
float f(float x)
{
return 1/sqrt(1+x*x*x);
}
void main()
int i,n=4;
float c;
for(i=0;i<=4;i++)
{
c=Cotes(f,0,1,n);
printf("C(%d)=%f\n",n,c);
n*=2;
}
}
〔2〕
#include
#include
float Cotes(float(*f)(float),float a,float b,int n)
{
int k;
float c,c1=0,c2,c3,c4;
float h=(b-a)/n;
c2=(*f)(a+h/4);
c3=(*f)(a+h/2);
c4=(*f)(a+3*h/4);
for(k=1;k<=n-1;k++)
{
c1+=(*f)(a+k*h);
c2+=(*f)(a+k*h+h/4);
c3+=(*f)(a+k*h+h/2);
c4+=(*f)(a+k*h+3*h/4);
}
c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);
return c;
}
float f(float x)
{ // return 1/sqrt(1+x*x*x);
if (x==0)
return 1;
else return sin(x)/x;
}
void main()
{
int i,n=4;
float c;
for(i=0;i<=4;i++)
{
// c=Cotes(f,0,1,n);
c=Cotes(f,0,5,n);
printf("C(%d)=%f\n",n,c);
n*=2;
}
}
结果:
〔1〕
〔2〕
实习题7 一、改良欧拉法
1、
#include
#include
double Adams (
double (*f)(double x, double y),
double x0,
double y0,
double h,
int N
) {
for(int n=0; n double x1=x0+h; double yp=y0+h*f(x0,y0); double y1=y0+h*f(x1,yp); y1=(yp+y1)/2.0; printf("ty=%f\n",y1); x0=x1; y0=y1; } } int main(void) { double f(double x, double y); double x0=0,y0=0; double x,y,step; long i; step=0.1; Adams(f,x0,y0,0.1,10); } double f(double x, double y) { double r; r=x*x+y*y; return(r); } 2、 int main(void) { double f(double x, double y); double x0=0,y0=0; double x,y,step; long i; step=0.1; Adams(f,x0,y0,0.1,10); } double f(double x, double y) { double r; r=1/(1+y*y); return(r); } 3、 int main(void) { double f(double x, double y); double x0=0,y0=1; double x,y,step; long i; step=0.1; Adams(f,x0,y0,0.1,10); } double f(double x, double y) { double r; r=y-2*x/y; return(r); 东南大学计算方法与实习实验报告 学院:电子科学与工程学院 学号:06A12528 姓名:陈毓锋 指导老师:李元庆 实习题1 4、设S N=Σ (1)编制按从大到小的顺序计算S N的程序; (2)编制按从小到大的顺序计算S N的程序; (3)按两种顺序分别计算S1000,S10000,S30000,并指出有效位数。 解析:从大到小时,将S N分解成S N-1=S N-,在计算时根据想要得到的值取合适的最大的值作为首项;同理从小到大时,将S N=S N-1+ ,则取S2=1/3。则所得式子即为该算法的通项公式。 (1)从大到小算法的C++程序如下: /*从大到小的算法*/ #include 实习题1 1用两种不容的顺序计算 644834.11000 1 2 ≈∑=-n n ,分析误差的变化 (1)顺序计算 源代码: #include if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } 结果: 2已知连分数 ))//(.../(322101 n n b a a b a b a b f ++++ = 利用下面的方法计算f: 1 1 )0,...,2,1(,d f n n i d a b d b d i i i i n n =--=+==++ 写一个程序,读入n,n n b a ,,计算并打印f 源代码: #include 计算方法答案王能超 【篇一:计算方法习题集及实验指导书】 s=txt>计算机科学与技术系 檀明 2008-02-10 课程性质及目的要求 (一)课程性质 自计算机问世以来,科学计算一直是计算机应用的一个重要领域, 数值计算方法是解决各种复杂的科学计算问题的理论与技术的基础。《计算方法》课程讨论用于科学计算中的一些最基本、最常用的算法,不但具有数学的抽象性与严密的科学性的特点,而且具有应用 的高度技术性的特点。它对于培养从事计算机应用的科技人才有着 重要的作用,是计算机应用专业(本科段)的一门重要的技术基础 课程。 (二)目的要求 通过本课程的学习和上机实验,了解用计算机解决科学计算问题的 方法特点,掌握计算方法中的一些基本概念、基本公式和相应的算 法流程,提高根据算法描述设计高级语言程序并进行验证的技能。 在学习过程中,应注重理解和应用,在搞清基本原理和基本概念的 基础上,通过习题、编程和上机等环节,巩固和加深已学的内容, 掌握重要的算法及其应用。注重理论与算法的学习和应用相结合, 强调编程及上机计算的技能培养,是本课程不同于一般数学课程的 重要特点。(三)学习方法指导 1.循序渐进逐章学习本课程从第二章开始,每章都讨论一个大类 的算法。虽然各算法是相对独立的,但是也存在相互联系与前后继 承的关系。前面的概念和算法学好了,后面的内容也就容易学,越 学越感到容易。前面的内容没有学好,后面就会感到难学,甚至会 出现越来越感到困难、失去学习信心的情况。 2.稳扎稳打融会贯通学习要扎实、要讲求实效。每一个重要的概 念和公式,都会搞清楚,做到融会贯通。只有这样,才能取得学习 的学习效果。 3.多学练勤做习题教材及本习题集中的每一章都附有适量的习题,可以帮助考生巩固和加深理解所学的知识,提高解题能力。因此, 计算方法与实习上机实验报告 一、引言 本文旨在介绍和展示我们在“计算方法”课程中的实习上机实验环节所完成的一些关键任务和所取得的成果。该实验课程的目标是让我们更深入地理解和应用各种计算方法,并在实际操作中提高我们的编程和问题解决能力。 二、实验内容与目标 实验的主要内容是利用各种计算方法解决实际数学问题。我们被要求使用编程语言(如Python或Java)来实现和解决这些问题。这些问题包括使用牛顿法求解平方根,使用蒙特卡洛方法计算圆周率,以及使用最优化方法求解函数的最小值等。 实验的目标不仅是让我们掌握计算方法的基本理论,更是要让我们能够在实际操作中运用这些方法。我们需要在实习过程中,通过与同伴们合作,共同解决问题,提高我们的团队合作能力和问题解决能力。 三、实验过程与问题解决策略 在实验过程中,我们遇到了许多问题,如编程错误、理解困难和时间 压力等。我们通过相互讨论、查阅资料和寻求教师帮助等方式,成功地解决了这些问题。 例如,在实现牛顿法求解平方根时,我们一开始对导数的计算和理解出现了一些错误。但我们通过查阅相关资料和讨论,最终理解了导数的正确计算方法,并成功地实现了牛顿法。 四、实验结果与结论 通过这次实习上机实验,我们不仅深入理解了计算方法的基本理论,还在实际操作中提高了我们的编程和问题解决能力。我们的成果包括编写出了能有效求解平方根、计算圆周率和求解函数最小值的程序。这次实习上机实验非常成功。我们的团队不仅在理论学习和实践操作上取得了显著的进步,还在团队合作和问题解决方面积累了宝贵的经验。这次实验使我们对计算方法有了更深的理解和认识,也提高了我们的编程技能和解决问题的能力。 五、反思与展望 回顾这次实验,我们意识到在实验过程中,我们需要更好地管理我们的时间和压力。在解决问题时,我们需要更有效地利用我们的知识和资源。在未来,我们希望能够更加熟练地运用计算方法,并能够更有 计算方法与实习答案 【篇一:《基础会计学习指导、习题与实训》答案】 名词解释 1.会计:是以货币为主要计量单位,以凭证为依据,运用专门的技 术方法,对一定主体的经济活动进行连续、系统、全面的核算与监督,以提高经济效益为目标,向有关方面提供会计信息的一种经济 管理活动。 2.会计职能:是指会计在经济管理中所具有的功能,即会计在经济 管理中能发挥什么作用。 3.会计核算职能:是指以货币为主要计量单位,对企事业单位一定 时期的经济活动进行真实、连续、系统、完整的记录、计量和报告。 4.会计监督职能:是指依据监督标准,利用会计核算所提供的会计 信息对各单位的经济活动全过程的合法性、合理性和有效性进行的 指导、控制和检查。 5.会计对象:是指会计所要核算和监督的内容,即会计工作的内容。 6.会计要素:是对会计对象按经济特性所做的基本分类,是会计对 象的具体内容。 7.资产:是指企业过去的交易或者事项形成的、由企业拥有或者控 制的、预期会给企业带来未来经济利益的资源。 8.负债:是指企业过去的交易或者事项形成的、预期会导致经济利 益流出企业的现时义务。 9.所有者权益:是指企业资产扣除负债后由所有者享有的剩余权益,包括实收资本、资本公积、盈余公积和未分配利润。 10.收入:是指企业在日常活动中形成的、会导致所有者权益增加的、与所有者投入资本无关的经济利益的总流入,包括销售商品收入、劳务收入、利息收入等。 11.费用:是指企业在日常活动中发生的、会导致所有者权益减少的、与向所有者分配利润无关的经济利益的总流出。 12.利润:是指企业在一定会计期间的经营成果,包括收入减去费 用后的净额、直接计入当期利润的利得和损失等。 13.会计方法:是为实现会计核算、进行会计管理和完成会计任务 所采用的手段。 竭诚为您提供优质文档/双击可除最小二乘法曲线拟合实验报告 篇一:实验3曲线拟合的最小二乘法 实验三曲线拟合的最小二乘法 1、实验目的: 在科学研究与工程技术中,常常需要从一组测量数据出发,寻找变量的函数关系的近似表达式,使得逼近函数从总体上与已知函数的偏差按某种方法度量能达到最小而又不 一定过全部的点。这是工程中引入最小二曲线拟合法的出发点。充分掌握:1.最小二乘法的基本原理;2.用多项式作最小二乘曲线拟合原理的基础上,通过编程实现一组实验数据的最小二乘拟合曲线。 2、实验要求: 1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 2)编写上机实验程序,作好上机前的准备工作; 3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 4)分析和解释计算结果; 5)按照要求书写实验报告; 3、实验内容: 1)给定数据如下: x:0.15,0.4,0.6,1.01,1.5,2.2,2.4,2.7,2.9, 3.5,3.8, 4.4,4.6, 5.1, 6.6, 7.6; y:4.4964,5.1284,5.6931,6.2884,7.0989,7.5507,7.5106,8.0756, 7.8708,8.2403,8.5303,8.7394,8.9981,9.1450,9.5070,9.9115;试作出幂函数拟合数据。 2)已知一组数据: x:0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1 y:-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2; 试用最小二乘法求多项式函数,使与此组数据相拟合。 4、题目: 曲线拟合的最小二乘法 5、原理: 《计算方法习题集及实验指导书》 计算机科学与技术系 檀明 2008-02-10 课程性质及目的要求 (一)课程性质 自计算机问世以来,科学计算一直是计算机应用的一个重要领域,数值计算方法是解决各种复杂的科学计算问题的理论与技术的基础。《计算方法》课程讨论用于科学计算中的一些最基本、最常用的算法,不但具有数学的抽象性与严密的科学性的特点,而且具有应用的高度技术性的特点。它对于培养从事计算机应用的科技人才有着重要的作用,是计算机应用专业(本科段)的一门重要的技术基础课程。 (二)目的要求 通过本课程的学习和上机实验,了解用计算机解决科学计算问题的方法特点,掌握计算方法中的一些基本概念、基本公式和相应的算法流程,提高根据算法描述设计高级语言程序并进行验证的技能。在学习过程中,应注重理解和应用,在搞清基本原理和基本概念的基础上,通过习题、编程和上机等环节,巩固和加深已学的内容,掌握重要的算法及其应用。注重理论与算法的学习和应用相结合,强调编程及上机计算的技能培养,是本课程不同于一般数学课程的重要特点。 (三)学习方法指导 1.循序渐进逐章学习本课程从第二章开始,每章都讨论一个大类的算法。虽然各算法是相对独立的,但是也存在相互联系与前后继承的关系。前面的概念和算法学好了,后面的内容也就容易学,越学越感到容易。前面的内容没有学好,后面就会感到难学,甚至会出现越来越感到困难、失去学习信心的情况。 2.稳扎稳打融会贯通学习要扎实、要讲求实效。每一个重要的概念和公式,都会搞清楚,做到融会贯通。只有这样,才能取得学习的学习效果。 3.多学练勤做习题教材及本习题集中的每一章都附有适量的习题,可以帮助考生巩固和加深理解所学的知识,提高解题能力。因此,在学习过程中,应当适合习题进行思考,应当尽可能多做习题,遇到某些不会做的题,应三思之后再请老师给予提示。 4.抓住特点前后联系本课程只讲了五大类算法。每类算法都是针对一类特定的计算问题,都有其自身的特点。各类算法之间又有某些联系。例如,插值算法是构造比较简单的函数来代替实际的复杂函数进行某些点的计算,尽管构造简单的函数的方法有多种,但这些方法的思路和目的都是一致的;数值积分算法的特点是用近似的方法来计算曲边梯形的面积,采用不同的近似性方法即可得到不同的计算公式,等等。注意算法的特点和各类算法间的联系,有助于提高学习效果。 5.抓住共性由此及彼本课程所讲的五大类算法,虽然各不相同,但也存在着一些共同之点。例如,它们都是适合于计算机求解的数值方法,大都是用简单而便于重复计算的函数来代替复杂函数进行计算,得到近似结果;在算法描述上,大多数算法流程的框架是相同的或是相近似的。抓住了共性,我们就能够举一反三,就能由此及彼。 (四)先修课高等数学,线性代数,高级语言程序设计。 (五)教材《计算方法》第二版,易大义,浙江大学出版社 (六)参考书目《数值分析简明教程》王能超编高等教育出版社 《计算机数值方法》施吉林、刘淑珍、陈桂芝编,高等教育出版社 《数值分析》金聪主编,武汉理工大学出版社 《计算方法与实习》袁慰平、孙志忠等主编,东南大学出版社东南大学计算方法与实习上机实验一
计算方法与实习上机题答案
计算方法答案王能超
计算方法与实习上机实验报告
计算方法与实习答案
最小二乘法曲线拟合实验报告
计算方法习题集及实验指导书