数值计算实验报告Word下载.docx

上传人:b****0 文档编号:13211736 上传时间:2022-10-08 格式:DOCX 页数:26 大小:181.90KB
下载 相关 举报
数值计算实验报告Word下载.docx_第1页
第1页 / 共26页
数值计算实验报告Word下载.docx_第2页
第2页 / 共26页
数值计算实验报告Word下载.docx_第3页
第3页 / 共26页
数值计算实验报告Word下载.docx_第4页
第4页 / 共26页
数值计算实验报告Word下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数值计算实验报告Word下载.docx

《数值计算实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《数值计算实验报告Word下载.docx(26页珍藏版)》请在冰豆网上搜索。

数值计算实验报告Word下载.docx

实验六

超松弛迭代求解方程组

实验七

幂法和反幂法

实验八

R-K方法求解初值问题

数值计算方法与算法实验报告

学期:

2014至2015第1学期2014年12月1日

课程名称:

数值计算方法与算法专业:

信息与计算科学班级12级5班

实验编号:

1实验项目Neton插值多项式指导教师:

孙峪怀

姓名:

宋元台学号:

实验成绩:

1、实验目的及要求

实验目的:

掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。

实验要求:

1.给出Newton插值算法

2.用C语言实现算法

二、实验内容

三、实验步骤(该部分不够填写.请填写附页)

1.算法分析:

下面用伪码描述Newton插值多项式的算法:

Step1输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x.

Step2形成差商表

fori=0ton

forj=ntoif(j)=((f(j)-f(j-1)(x(j)-x(j-1-i));

Step3置初始值temp=1,newton=f(0)

Step4fori=1ton

temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成(x-x(0).....(x-x(i-1)*

Newton=newton+temp*f(i);

Step5输出f(x)的近似数值newton(x)=newton.

2.用C语言实现算法的程序代码

#include<

stdio.()

{

intn;

inti,j;

POINTpoints[MAX_N+1];

doublediff[MAX_N+1];

doublex,tmp,newton=0;

printf("

\nInputnvalue:

"

);

scanf("

%d"

&

n);

if(n>

MAX_N)

{

theinputnislargerthanMAX_N,pleaseredefinetheMAX_N.\n"

return1;

}

if(n<

=0)

pleaseinputanumberbetween1and%d.\n"

MAX_N);

nowinputthe(x_i,y_i)i=0,...%d\n"

n);

for(i=0;

i<

=n;

i++)

pleaseinputx(%d)y(%d)\n"

i,i);

%lf%lf"

points[i].x,&

points[i].y);

nowinputthevalueofx:

\n"

%lf"

x);

i++)diff[i]=points[i].y;

n;

for(j=n;

j>

i;

j--)

{

diff[j]=(diff[j]-diff[j-1])(points[j].x-points[j-1-i].x);

}

tmp=1;

newton=diff[0];

tmp=tmp*(x-points[i].x);

newton=newton+tmp*diff[i+1];

newton(%f)=%f\n"

x,newton);

return0;

}

程序运行结果过程及截图为:

2014至2015第1学期2014年12月1日

2实验项目Romberg算法指导教师:

一、实验目的及要求

熟练掌握数值积分的基本思想和动手推导积分公式的能力,并写出自己设计的变步长算法,用此算法解决实际问题。

主要锻炼分析问题及对数值方法产生的误差在实际执行算法中的变化,体会事前误差和事后误差的不同之处。

写出Romberg算法的描述,并用此算法计算下列定积分的值,要求满足给定误差。

二、实验内容。

(1)用变步长的Romberg方法计算定积分:

给定误差限为

下面用伪码描述Romberg的算法描述:

Sstep1输入区间端点a,b,精度控制值e,循环次数M,定义函数f(x),取n=1,

(x))

#defineN_H20

#defineMAXREPT10

#definea1.0

#defineb2.0

#defineepsilon0.00001

doublecomputeT(doubleaa,doublebb,longintn)

inti;

doublesum=0.0;

double;

for(i=1;

sum+=f(aa+i*(()

longintn=N_H,m=0;

doubleT[MAXREPT+1][2];

T[0][1]=computeT(a,b,n);

n*=2;

for(m=1;

m<

MAXREPT;

m++)

for(i=0;

m;

T[i][0]=T[i][1];

for(i=1;

=m;

T[i][1]=T[i-1][1]+(T[i-1][1]-T[i-1][0])(pow(2,2*m)-1);

if((T[m-1][1]<

T[m][1]+epsilon)&

&

(T[m-1][1]>

T[m][1]-epsilon))

theintegrateis%lf\n"

T[m][1]);

return;

returnnosolved...\n"

}_

2.运行结果

数值计算方法与算法专业:

3实验项目:

求拟合算法指导教师:

实验成绩:

学习了曲线拟合的最小二乘法,会求拟合曲线,线性拟合和二次拟合函数,还有形如aexp(bx)的曲线拟合,实验主要是求形如aexp(bx)的曲线拟合,并理解体会其意义。

1.形如aexp(bx)曲线拟合的算法;

用形如p(x)=aexp(bx)的函数拟合给定()

拟合函数aexp(bx)的算法描述:

Step1输入m值,及(xi,yi),i=1,2,...,m;

Step2解方程组

m

a=

b

Step3输出p(x)=aexp(bx)即所求拟合函数

intm;

POINTpoints[MAX_N];

staticdoubleu11,u12,u21,u22,c1,c2;

doubleA,B,tmp;

\nInputmvalue"

m);

if(m>

=MAX_N)

TheinputmislargerthanMAX_N,pleaseredefinetheMAX_N.\n"

if(m<

Pleaseinputanumberbetween1and%d"

Nowinputthe(x_i,y_i),i=1,...,%d:

m);

tmp);

points[i].x=tmp;

points[i].y=tmp;

*inputx_i,y_i*

u21+=points[i].x;

u22+=points[i].x*points[i].x;

c1+=log(points[i].y);

c2+=points[i].x*log(points[i].y);

u12=u21;

u11=m;

A=(c1*u22-c2*u12)(u11*u22-u12*u21);

B=(c1*u21-c2*u11)(u21*u12-u22*u11);

Solve:

p(x)=%lfexp(%lfx)\n"

exp(A),B);

3.实验输出结果:

2014至2015第1学期2014年12月1日

数值计算方法与算法专业:

4实验项目弦截断法指导教师:

学习什么是弦截法,了解弦截法的用法,并学会用弦截法求方程的根。

用弦截法求f(x)在x0,x1附近的根

弦截法的算法描述:

Sstep1定义函数f(x0,输入控制精度epsilon,迭代初始值x_k1,x_k

计算f1:

=f(x_k1)!

x_k1,x_k2表示x(k-1),xk

Step2fork=2toMAXREPT

2.1f2:

=f(x_k2)

2.1x_k:

=x_k2-f2(x_k2-x_k1)(f2-f1)!

x_k表示x(k+1)

2.3if(|x_k-x_k2|<

epsilon)OR(|f(x_k)|<

epsilon)

Then{输出满足给定精度的近似解x_k,结束}

2.4f1:

=f2!

为下一次迭代准备数值

x_k1:

=x_k2

X_k2:

=x_k

Step3输出:

在初始值x_k1,x_k2附近f(x)无根

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1