欢迎来到天天文库
浏览记录
ID:43319720
大小:758.94 KB
页数:33页
时间:2019-09-30
《《科学与工程中的计算方法》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、撫1处矩车工处栄院HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYoginee/7计算方法实验指导书彭彬撰写付勇智审核电气与信息工程学院计算机工程系2013年12月刖§计算方法实验要求在VC++6.0编程环境下进行。通过实验,力图认识不同方法在误差控制、算法稳定性、收敛速度以及迭代初值的影响等方面的特点。如果没有特别说明,计算过程小数点后保留5位数字,最后四舍五入到小数点后四位数字;涉及迭代方法时,迭代结束的条件统一•为£=O.OOOOO5o在VC++6.0屮,可使用setprecision在流
2、的输出中控制浮点数的显示(缺省显示6位)。演示如下:#include#include#includecout<3、用程序类型”选择“单文档”;“是否包含数据库”选择“不包含数据库”;其它选择缺省),然后在"ClassView"中XXView类文件加以操作。一般先在XXView中加入自定义变量、口定义函数等,然后在OnDraw()方法中调用门定义函数。也可以把代码直接写入OnDraw()方法中。图1是一个名为test的工程,在CtestView节点,点击右键,用户可以增加自定义变量,自定义函数。如选择“AddMemberFunction”,输入函数的返回类型为Void,输入函数的签名为^drawOldLinedntN,CDC*pDC)4、”,就可以创建一个自定义函数,然后把函数补充完整即可。画曲线有两种方法:(1)依据曲线坐标逐个用SetPixelO函数打点。(2)先把当前光标用MoveTo()函数移动到曲线的始点,再用LineTo()函数画线。线的样式由画笔决定。对封闭区域还可以进行填充处理,填充的样式由画刷决定。图2是一个自定义函数的例子,参数N代表画线所用的点数,代码如下:voidCTestView::draw01dLine(intN,CDC*pDC){pDC->Text0ut(250,10,"龙格现象“);//文本输出CPen*pnewPen,*5、poldPen;//设置ilfli笔,将影响线的样式pnewPen二newCPen();pnewPen->CreatcPen(PS_SOLID,10,RGB(O,0,0));图1MFC工程poldPen=pDC->SelectObject(pnewPen);pDC->MoveTo(0,380);pDC->LineTo(640,380);〃画坐标系pDC->MoveTo(320,0);pDC->LineTo(320,480);〃画处标系pDC->MoveTo(20,380);//画曲线,先移动到本[111线的第一个点for6、(inti二0;iON;i++){floatx0=-l+2.0/N*i;//原始X坐标floaty0=l.0/(l+4*x0*x0);//原始Y坐标xO二x0*300;//X坐标放人yO二-y0*300;//Y坐标放大intxl=(int)(320+x0)://坐标转化为整型intyl=(int)(440+y0);//坐标转化为整型pDC~>LineTo(xl,yl);pDC->SelectObject(poldPen);//重置画笔}图3是一个根据Lagrange插值多项式求函数值的自定义函数Lagrange(floa7、tx,intn,floatxl[],floatyl[]),其中n是插值节点的个数,数组xl,yl存放插值节点的坐标,x是待求点的x坐标,函数根据插值多项式返回对应的y坐标。代码如下:floatCTestView::Lagrange(floatx,intn,floatxl[],floatyl[]){floaty二0;//存放函数值intk=0://控制变量,求lagrange基函数的值0文件痢5查看i&A工程缰译工具窗口勢助■圄x▼‘▼am.halfs聞聯IJ8、CTestView▼(Allclassmembers)二0dr9、awOldLine▼A彥菌匡i!凰®testclassesuoidCTestUiew::draw01dLine(i吐N,CDC*pDC)〃N-点数匡PCAboutDIgSCMainFrameECTestApp0弋CTestDoc日七CTestView:I-®AssertValidO伽CTestViewOp♦TTest
3、用程序类型”选择“单文档”;“是否包含数据库”选择“不包含数据库”;其它选择缺省),然后在"ClassView"中XXView类文件加以操作。一般先在XXView中加入自定义变量、口定义函数等,然后在OnDraw()方法中调用门定义函数。也可以把代码直接写入OnDraw()方法中。图1是一个名为test的工程,在CtestView节点,点击右键,用户可以增加自定义变量,自定义函数。如选择“AddMemberFunction”,输入函数的返回类型为Void,输入函数的签名为^drawOldLinedntN,CDC*pDC)
4、”,就可以创建一个自定义函数,然后把函数补充完整即可。画曲线有两种方法:(1)依据曲线坐标逐个用SetPixelO函数打点。(2)先把当前光标用MoveTo()函数移动到曲线的始点,再用LineTo()函数画线。线的样式由画笔决定。对封闭区域还可以进行填充处理,填充的样式由画刷决定。图2是一个自定义函数的例子,参数N代表画线所用的点数,代码如下:voidCTestView::draw01dLine(intN,CDC*pDC){pDC->Text0ut(250,10,"龙格现象“);//文本输出CPen*pnewPen,*
5、poldPen;//设置ilfli笔,将影响线的样式pnewPen二newCPen();pnewPen->CreatcPen(PS_SOLID,10,RGB(O,0,0));图1MFC工程poldPen=pDC->SelectObject(pnewPen);pDC->MoveTo(0,380);pDC->LineTo(640,380);〃画坐标系pDC->MoveTo(320,0);pDC->LineTo(320,480);〃画处标系pDC->MoveTo(20,380);//画曲线,先移动到本[111线的第一个点for
6、(inti二0;iON;i++){floatx0=-l+2.0/N*i;//原始X坐标floaty0=l.0/(l+4*x0*x0);//原始Y坐标xO二x0*300;//X坐标放人yO二-y0*300;//Y坐标放大intxl=(int)(320+x0)://坐标转化为整型intyl=(int)(440+y0);//坐标转化为整型pDC~>LineTo(xl,yl);pDC->SelectObject(poldPen);//重置画笔}图3是一个根据Lagrange插值多项式求函数值的自定义函数Lagrange(floa
7、tx,intn,floatxl[],floatyl[]),其中n是插值节点的个数,数组xl,yl存放插值节点的坐标,x是待求点的x坐标,函数根据插值多项式返回对应的y坐标。代码如下:floatCTestView::Lagrange(floatx,intn,floatxl[],floatyl[]){floaty二0;//存放函数值intk=0://控制变量,求lagrange基函数的值0文件痢5查看i&A工程缰译工具窗口勢助■圄x▼‘▼am.halfs聞聯IJ
8、CTestView▼(Allclassmembers)二0dr
9、awOldLine▼A彥菌匡i!凰®testclassesuoidCTestUiew::draw01dLine(i吐N,CDC*pDC)〃N-点数匡PCAboutDIgSCMainFrameECTestApp0弋CTestDoc日七CTestView:I-®AssertValidO伽CTestViewOp♦TTest
此文档下载收益归作者所有