




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学院:计算机与信息工程学院 班级:11级计算机科学与技术 学号:20111105461 姓名:郭雁军数值分析实验报告任课教师:马季骕 班级:11级计算机科学与技术1 实验目的及要求2 程序的源代码3 实验操作4 实验结果及分析1 实验目的及要求使用Lagrange插值的方法求原函数的逼近函数。在数学分析中,用y=f(x)来描述一条平面直线,但是在实际问题中,函数y=f(x)往往是通过观测得到的一组数据来给出的,只是已知个别点的函数值,而非在整个区间上,插值法是应用十分广泛的一种方法。本实验是用拉格朗日法来逼近被逼近函数,并画出其图像。当给出了n+1个节点上f(x)的一张函数表后,用Lagrange插值法求一个函数(x),并满足以下两个条件:(1)(x)是一个不超过n次的多项式;(2)在给定点上与取相同值,即=(i=0,1,2n)。当插值节点取的足够多时逼近函数(x)能够很好的逼近被逼近函数f(x)。而插值函数(x)的次数就会相应地升高,高次的插值多项式就不一定收敛到相应的被逼近函数,就会产生Runge现象,本实验可以从函数的图像上清楚地看到这一现象。2 程序的源代码/ 数值分析Dlg.cpp : implementation file/#include stdafx.h#include 数值分析.h#include 数值分析Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)/AFX_DATA_INIT(CMyDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_NEW, OnNew)ON_BN_CLICKED(IDC_LAG, OnLag)ON_BN_CLICKED(IDC_LINE, OnLine)ON_BN_CLICKED(IDC_HER, OnHer)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CMyDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMyDlg:OnNew() / TODO: Add your control notification handler code here int x00=225,y00=225,i,j;double x;CDC *pDC=GetDC();pDC-SetMapMode(MM_LOMETRIC);pDC-SetViewportOrg(x00,y00);/画坐标轴与原函数for(i=-650; iSetPixel(i,0,RGB(0,0,0);pDC-SetPixel(0,i,RGB(0,0,0);for(x=-1; xSetPixel(x*500,j,RGB(255,0,0);void CMyDlg:OnLag() / TODO: Add your control notification handler code hereint x00=225,y00=225,i,j;double x;CDC *pDC=GetDC();pDC-SetMapMode(MM_LOMETRIC);pDC-SetViewportOrg(x00,y00);/画坐标轴for(i=-650; iSetPixel(i,0,RGB(0,0,0);pDC-SetPixel(0,i,RGB(0,0,0);double yx=-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1;/ 拉格朗日差值的函数double yy12,lx12,ly12;double l_fenzi12,l_fenmu12; double l_x,l_y;for(i=0; i=10; i+)yyi=1.0/(1+25*yxi*yxi);for(i=0; i=10; i+)l_fenmui=1.0;for(j=0; j=10; j+)if(i!=j)l_fenmui=l_fenmui*(yxi-yxj); double qq,pp;for(qq=-1; qq=1; qq+=0.0003)for(i=0; i=10; i+)l_fenzii=1.0; for(j=0; j=10; j+)if(i!=j) l_fenzii=l_fenzii*(qq-yxj);pp=0;for(i=0; iSetPixel(qq*500,pp*390+5,RGB(150,255,0);3 实验操作算法描述:先从特殊情况入手,研究线形插值和二次插值。在线性插值中,若逼近函数用两点式表示出来,则有F(x)=y0*(x-x1)/(x0-x1)+y1*(x-x0)/(x1-x0);过三个点的二次插值可以确定一条抛物线,经过化简之后,被逼近函数可以表示称F(x)=y0*(x-x1)*(x-x2)/(x0-x1)/(x0-x2)+y1*(x-x0)*(x-x2)/(x1-x0)/(x1-x2)+y2*(x-x0)*(x-x1)/(x2-x0)/(x2-x1);经过分析对比可以总结出:对于具有n+1个节点的函数,都可以表示成该节点的函数值与其对应基函数的乘积的线形组合。其中要求逼近函数是n次多项式,并且逼近函数过所有的型值点。(1) 原函数图像的绘制: 对于给定函数。在区间上画出f(x)的函数图像。(2) Lagrange插值函数图像的绘制: 根据题目要求取11个等距插值节点,求出每一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国考行测题库比例【培优b卷】附答案详解
- 税务局国考行测题库附参考答案详解(夺分金卷)
- 国考行测题库结构有完整答案详解
- 消防初级国考理论题库【综合卷】附答案详解
- 辽宁省国考行测题库带答案详解(b卷)
- 许昌国考常识题库及参考答案详解【达标题】
- 登高高处作业国考题库附参考答案详解【突破训练】
- 消防维保国考题库及完整答案详解【全优】
- 焊工国考题库一套附答案详解
- 行测国考答案及题库及完整答案详解【有一套】
- 高考语文考前必练之名句名篇默写第09练《烛之武退秦师》(原卷版+解析)
- 《企业安全生产费用提取和使用管理办法》财资2022136号(2022.11.21)
- 医学伦理与职业操守
- 华为体验店开业方案
- 《风力发电技术概论》课件
- 城市设计实践类型 城市设计实践教程电子书
- 电气设备空载试运行及负荷试运行记录
- 全等三角形-倍长中线法
- 心肺复苏与电除颤指南课件
- GB/T 9162-2001关节轴承推力关节轴承
- 建筑机电安装工程标准化施工做法图集课件
评论
0/150
提交评论