已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大象分类说课稿
- 苏教版(2024)数学二年级上册第四单元 认识三位数(基础卷)
- 2025-2026学年国王拼音说课稿
- 2025-2026学年三只熊的早餐说课稿评价
- 2025-2026学年地理教师说课稿
- 2026下半年高中数学教资面试函数专项试卷
- 2025-2026学年公输说课稿模板人物
- 2026课件:环境污染刑事案件适用法律解释
- 《商业银行贷款》课件
- 《心脏血管检查》课件
- 2026年昆明市嵩明润泽水务运营有限公司招聘(5人)笔试备考试题及答案解析
- 2026慈溪市上林人才服务有限公司派遣至浒山街道办事处招聘编外工作人员5人考试备考题库及答案详解
- (2026版)围手术期出凝血管理麻醉专家意见
- 建筑工程疫情防控工作方案
- 实习生录用通知书标准范本
- 电力工程预结算工作流程及审计要点
- 2025年内外贸协同发展项目可行性研究报告
- 综合办公室主任岗位竞聘
- 自考03450公共部门人力资源管理模拟试题及答案
- 化工岗位安全操作规程
- 绿色食品品牌2025年建设规划与消费者偏好研究报告
评论
0/150
提交评论