- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《科学与工程中的计算方法》.doc
PAGE
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
计算方法
实验指导书
彭彬撰写 付勇智审核
电气与信息工程学院计算机工程系
2013年12月
前言
计算方法实验要求在VC++ 6.0编程环境下进行。通过实验,力图认识不同方法在误差控制、算法稳定性、收敛速度以及迭代初值的影响等方面的特点。
如果没有特别说明,计算过程小数点后保留5位数字,最后四舍五入到小数点后四位数字;涉及迭代方法时,迭代结束的条件统一为。在VC++ 6.0中,可使用setprecision在流的输出中控制浮点数的显示(缺省显示6位)。演示如下:
# includeiostream.h
# includemath.h
# includeiomanip.h
coutsetprecision(6)setiosflags(ios::left); //输出6位精度,输出左对齐
coutsetw(12)coeff[i]; //设置输出宽度为12(不够将补充0)
本课程个别实验要求画出函数的曲线,所有画图题目均要求用MFC完成。在利用MFC画图时,先要建立一个MFC AppWizard(exe)类型的工程(建立工程时,“应用程序类型”选择“单文档”;“是否包含数据库”选择“不包含数据库”;其它选择缺省),然后在“ClassView”中XXView 类文件加以操作。一般先在XXView中加入自定义变量、自定义函数等,然后在OnDraw()方法中调用自定义函数。也可以把代码直接写入OnDraw()方法中。
图1是一个名为test的工程,在CtestView节点,点击右键,用户可以增加自定义变量,自定义函数。
如选择“Add Member Function”,输入函数的返回类型为Void,输入函数的签名为“drawOldLine(int N, CDC *pDC)”,就可以创建一个自定义函数,然后把函数补充完整即可。
画曲线有两种方法:(1)依据曲线坐标逐个用SetPixel()函数打点。(2)先把当前光标用MoveTo()函数移动到曲线的始点,再用LineTo()函数画线。线的样式由画笔决定。
对封闭区域还可以进行填充处理,填充的样式由画刷决定。
图2是一个自定义函数的例子,参数N代表画线所用的点数,代码如下:
void CTestView::drawOldLine(int N, CDC *pDC)
{
pDC-TextOut(250,10,龙格现象);//文本输出
CPen *pnewPen,*poldPen; //设置画笔,将影响线的样式
pnewPen=new CPen();
pnewPen-CreatePen(PS_SOLID,10,RGB(0,0,0));
图1 MFC工程
poldPen=pDC-SelectObject(pnewPen);
pDC-MoveTo(0,380); pDC-LineTo(640,380); //画坐标系
pDC-MoveTo(320,0); pDC-LineTo(320,480); //画坐标系
pDC-MoveTo(20,380); //画曲线,先移动到本曲线的第一个点
for (int i=0;i=N;i++){
float x0=-1+2.0/N*i;//原始X坐标
float y0=1.0/(1+4*x0*x0);//原始Y坐标
x0=x0*300; //X坐标放大
y0=-y0*300;//Y坐标放大
int x1=(int)(320+x0); //坐标转化为整型
int y1=(int)(440+y0); //坐标转化为整型
pDC-LineTo(x1,y1);
}
pDC-SelectObject(poldPen); //重置画笔
}
图3是一个根据Lagrange插值多项式求函数值的自定义函数Lagrange(float x, int n, float x1[], float y1[]),其中n是插值节点的个数,数组x1,y1存放插值节点的坐标,x是待求点的x坐标,函数根据插值多项式返回对应的y坐标。代码如下:
float CTestView::Lagrange(float x, int n, float x1[], float y1[])
{
float y=0;//存放函数值
int k=0;//控制变量,求lagrange基函数的值
文档评论(0)