数值分析课程设计_第1页
数值分析课程设计_第2页
数值分析课程设计_第3页
数值分析课程设计_第4页
数值分析课程设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、青岛农业大学本科生课程论文题 目: 数值分析课程设计 姓 名: 杨宝赟 学 院: 理学与信息科学学院 专 业: 信息与计算科学专业 班 级: 2008级2班 学 号: 20084051 指导教师: 常桂娟 完成时间: 2011年12月23日 二一一年十二月二十三日课 程 论 文 任 务 书学生姓名 杨宝赟 指导教师 常桂娟 论文题目 数值分析课程设计 论文内容(需明确列出研究的问题): 运用matlab数学软件设计出数值分析的求拉格朗日插值多项式和牛顿插值多项式以及polyfit多项函数拟合来求的拟合曲线和列主元guass消去法解方程组。 资料、数据、技术水平等方面的要求:论文要符合一般学术论

2、文的写作规范,具备学术性、科学性和一定的创造性。文字要流畅、语言要准确、论点要清楚、论据要准确、论证要完整、严密,有独立的观点和见解。内容要理论联系实际,计算数据要求准确,涉及到他人的观点、统计数据或计算公式等要标明出处,结论要写的概括简短。参考文献的书写按论文中引用的先后顺序连续编码。(根据情况修改) 发出任务书日期2011.12.18 完成论文(设计)日期 2011.12.23 学科组或教研室意见(签字) 院、系(系)主任意见(签字) 目录前言3一、设计题1:4(一)、求拉格朗日插值多项式41.1理论知识41.2拉格朗日插值的设计思路与算法如下:52.求拉格朗日插值多项式的程序如下:(即l

3、anguage.m文件)53.程序运行操作过程与输出结果64.对计算过程与结果分析7(二)、 求牛顿插值多项式71.1理论知识71.2设计思路与算法步骤82.求牛顿插值多项式的程序如下:(即newton.m文件)83.程序运行操作过程与输出结果94对计算过程与结果的分析105.在课程设计中的心得体会10二、设计题2:101.1理论知识111.2算法步骤112程序运行操作过程与输出结果113.对计算过程与结果的分析124.在课程设计中的心得体会12三、设计题3:121.1理论知识131.2设计思路131.3算法步骤132程序清单143程序运行操作过程与输出结果174.对计算过程与结果的分析185

4、.在课程设计中的心得体会19参考文献19【abstract】20数值分析课程设计信息与计算科学专业 杨宝赟指导教师 常桂娟【摘要】本文对运用matlab软件分别对求拉格朗日插值多项式、牛顿插值多项式、曲线拟合、高斯列主元消去法进行设计,设计从理论知识、设计思路、算法步骤、程序清单等方面进行了系统的表达。理论知识方面分别给出了以上各个方法的来由、定义等,设计思路构成了程序清单的灵魂,简要表达了实现程序的各个步骤。最后,通过以上环节总结出自己对各个程序设计的心得体会。【关键词】matlab 拉格朗日插值 牛顿插值 曲线拟合 高斯消去 前言计算机与计算数学的发展以及它们在工程及科学技术问题中的广泛应

5、用,使得数值分析(计算方法)课程对高等院校理工科学生来说越来越重要。 数值分析是一门基础课,它象通常的数学课程一样有自身严密的科学体系,但它又是一门应用性很强的课程,目的是使学生能够用本课程的理论在计算机上实现有关的科学与工程计算,计算能力的培养对工科各专业的学生都是十分重要的,数值分析课程的课程设计环节正是为了适应这种需要而设置的,使得学生在学习各种算法时,能在课程设计环节中深刻体会算法的内涵、物理背景和实际意义,同时也能提高学生学习该课程的兴趣, 而更重要的是能提高学生综合运用知识的能力和培养学生利用计算机解决实际问题的能力。一、设计题1:根据下表所列的数据点求出其拉格朗日插值多项式及牛顿

6、插值多项式,并计算当x=2.0时的值。11.21.82.5411.443.246.2516(一)、求拉格朗日插值多项式1.1理论知识拉格朗日插值法是以法国十八世纪数学家约瑟夫路易斯拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。这样的多项式称为拉格朗日(插值)多项式。数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。拉格朗日插值法最早被英国数学家爱德华华林

7、于1779年发现,不久后(1783年)由莱昂哈德欧拉再次发现。1795年,拉格朗日在其著作师范学校数学基础教程中发表了这个插值方法,从此他的名字就和这个方法联系在一起。对某个多项式函数,已知有给定的k + 1个取值点: 其中对应着自变量的位置,而对应着函数在这个位置的取值。假设任意两个不同的都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: 其中每个 为拉格朗日基本多项式(或称插值基函数),其表达式为:。 拉格朗日基本多项式 的特点是在 上取值为1,在其它的点上取值为0。1.2拉格朗日插值的设计思路与算法如下:(1)输入,,。(2)对置。(3)置。(4)输出。2.求拉格朗日插值

8、多项式的程序如下:(即language.m文件)function f=language(x,y,x0)%求已知数据点的拉格朗日插值多项式%已知数据点的x坐标向量:x%已知数据点的y坐标向量:y%插值的x坐标:x0%求得的拉格朗日插值多项式在x0处的插值:fsyms t;if(length(x)=length(y) n=length(x);else disp(x和y的维数不相等!); return;end %检错f=0.0;for(i=1:n) l=y(i); for(j=1:i-1) l=l*(t-x(j)/(x(i)-x(j); end; for(j=i+1:n) l=l*(t-x(j)/(

9、x(i)-x(j);%计算拉格朗日基函数 end; f=f+l; %计算拉格朗日插值函数 simplify(f); %化简 if(i=n) if(nargin=3) f=subs(f,t,x0); %计算插值点的函数值 else f=collect(f); %将插值多项式展开 f=vpa(f,6); %将插值多项式的系数化成6位精度的小数 end endend3.程序运行操作过程与输出结果在文件中新建一个m文件language.m,编写出求拉格朗日插值多项式的程序,然后在命令区调用language.m文件,即在命令区打入f=language(x,y)即可得到,再次调用language.m文件,

10、利用f=language(x,y,2)语句得出x=2.0时的值。matlab中的命令如下: x=1 1.2 1.8 2.5 4; y=1 1.44 3.24 6.25 16; f=language(x,y) f = t2 f=language(x,y,2)f = 44.对计算过程与结果分析由于本题的例题给出的数据很简单,所以仅凭观察法就可以得出结果,而且计算量很小,不太符合程序设计的理念。所以对简单的数据处理可以直接用计算方法手动算出,本程序仅对复杂数据处理方面有很大用处。(二)、 求牛顿插值多项式1.1理论知识 牛顿插值法利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些

11、点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化, 这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式: 1.2设计思路与算法步骤(1)输入插值节点数n,插值点序列,要计算的插值点u。(2)形成差商表 !gk表示(3)置初始值t=1;newton=f(0)(4)for(i=1:n-1) for(j=i+1:n) y1(j) =

12、 (y(j)-y(i)/(x(j)-x(i); end c(i) = y1(i+1); l = l*(t-x(i); f = f + c(i)*l;(5)输出f(x)2.求牛顿插值多项式的程序如下:(即newton.m文件)function f = newton(x,y,x0)%本程序为newton插值,%其中x,y为插值节点和节点上的函数值,输出为插值点x0的函数值,%x0可以是向量。syms t;if(length(x) = length(y) n = length(x); c(1:n) = 0.0;else disp(x和y的维数不相等!); return;endf = y(1);y1

13、= 0;l = 1; for(i=1:n-1) for(j=i+1:n) y1(j) = (y(j)-y(i)/(x(j)-x(i); end c(i) = y1(i+1); l = l*(t-x(i); f = f + c(i)*l; simplify(f) y = y1; if(i=n-1) if(nargin = 3) f = subs(f,t,x0); else f = collect(f); %将插值多项式展开 f = vpa(f, 6); end endend3.程序运行操作过程与输出结果在文件中新建一个m文件newton.m,编写出求拉格朗日插值多项式的程序,然后在命令区调用newton.m文件,即在命令区打入f=newton(1 1.2 1.8 2.5 4,1 1.44 3.24 6.25 16,2)即可得到,以及x=2.0时的值为4。matlab中的命令如下: f=newton(1 1.2 1.8 2.5 4,1 1.44 3.24 6.25 16,2) ans =t2 f = 44对计算过程与结果的分析由于本题的例题给出的数据很简单,所以仅凭观察法就可以得出结果,而且计算量很小,不太符合程序设计的理念。所以对简单的数据处理可以直接用计算方法手动算出,本程序仅对复杂数据处理方面有很大用处。5.在课程设计中的心得体会在对拉格朗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论