77范文网 - 专业文章范例文档资料分享平台

数值计算基础实验指导+部分实验源代码+复习指导+三套试题及其答(6)

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Newton 插值法的源程序:

#include using namespace std;

class Matrix {

public:

Matrix(); ~Matrix();

void SetMatrix(const int n);//根据用户输入的插值点的数据设置计算结果的矩 阵

int GetN()const;//返回插值点的数目 void Calculate();//计算差商

double GetResult(double x)const;//根据输入的横坐标求函数值,返回运算结果 private:

double *a,*f;//a 和 f 分别用于存储插值点的横坐标和相应的函数值 int N;//记录插值点的数目 };

int main() {

Matrix matrix; int n; do{

cout<<\输入插值点的数目 N:\cin>>n; }while(n<2);

cout<<\输入插值点的数据:\

matrix.SetMatrix(n); matrix.Calculate();

double x;

cout<<\输入所求的横坐标:\cin>>x;

cout<<\所求的函数值为:\ return 1;

}

Matrix::Matrix()

{ //初始化数据

a=f=NULL; N=0; }

Matrix::~Matrix() {

//释放指针 a、f 指向的内存空间 delete []a; delete []f; }

void Matrix::SetMatrix(int n) {

N=n;

//为插值点创建动态数组 a=new double[N]; f=new double[N];

//输入插值点的数据

for(int i=0;i>*(a+i)>>*(f+i);

}

int Matrix::GetN() const {

return N; }

void Matrix::Calculate()

{ //将差商存储在一个一维数组内

for(int i=0;i

for(int j=GetN()-1;j>i;--j)

*(f+j)=(*(f+j)-*(f+j-1))/(*(a+j)-*(a+j-i-1));

}

double Matrix::GetResult(double x) const {

//利用差商和插值点的横坐标及第一个插值点的纵坐标计算函数值 double result=*f;//指针 f 指向第一个插值点的纵坐标 for(int i=1;i

double temp=1;

for(int j=0;j

}

return result; }

Newton 插值法的运行结果

变步长梯形法求定积分的源程序: #include #include using namespace std;

double function(const double x);//求被积函数的值并返回

//accumulate()为求定积分的函数,a、b 分别为积分的上下限,默认精度为 0.00001 double accumulate(const double a,const double b,const double eps=0.00001);

int main() {

double a,b,eps;//a,b 分别为定积分的上限和下限,h 为步长,eps 为要求的精度 a=0; b=1; eps=0.00001;

cout<<\在 0 到 1 上的积分为:\

return 0;

}

double function(const double x) {

if(x==0) return 1;//x 为 0 时函数值为 1 return(sin(x)/x);

}

double accumulate(const double a,const double b,const double eps) {

int n=1;

double h=b-a;//h 为步长

double T1=h*(function(a)+function(b))/2; double T2=T1/2+h*function(a+h/2)/2; //计算结果不满足精度,则继续 while(fabs(T2-T1)>eps) {

n*=2; h/=2;//步长折半 T1=T2; //利用 T1 计算 T2

double temp=0;

for(int i=1;i<=n;++i) temp+=function(a+(i-1.0/2)*h); T2=T1/2+h*temp/2; }

return T2;//返回步长 h 最合适时定积分的近似值 }

sin x

变步长梯形法求定积分 ? 的运行结果

0x

1

Romberg 算法求定积分的源程序: #include #include using namespace std;

//求被积函数的值并返回

double fun(const double x);

//Romberge()为求定积分的函数,a、b 分别为积分的上下限,默认精度为 0.00001 double Romberg(const double a,const double b,const double eps=0.0001); //函数 Tm()为 T-数表的计算公式

double Tm(const double T1,const double T2,const int m); int main() {

double a,b,eps;//a,b 分别为定积分的上限和下限,h 为步长,eps 为要求的精度 a=0; b=1; eps=0.00001;

cout<<\所求积分为:\return 0;

}

double fun(const double x)

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数值计算基础实验指导+部分实验源代码+复习指导+三套试题及其答(6)在线全文阅读。

数值计算基础实验指导+部分实验源代码+复习指导+三套试题及其答(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/471450.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: