实验4(1)--函数

实验4(1)--函数
实验4(1)--函数

实验4 函数的重载和变量的作用域

一、实验目的

1. 了解内联函数、重载函数、带默认参数函数的定义及使用。

2. 掌握作用域的概念,变量的存储类型及它们之间的差别。

3. 掌握程序的多文件组织。

二、实验内容

1.重载函数允许不同的函数使用相同的名字,这使得完成类似任务时可以使用相同的函数名。请编程完成如下功能:编写几个计算面积的函数,分别计算圆、矩形、梯形和三角形的面积,计算边长为1的正方形及其内切圆、内接等腰三角形和等腰梯形面积。

函数原型如下:

double area(double radius=0);

//圆面积,参数为半径,默认参数0,表示点面积

double area(double a, double b);

//计算矩形面积,参数为长和宽

double area(double a, double b, double h);

//计算梯形面积,参数为两底和高

double area(double a, double b, double c, int);

//三角形,参数为三边长,int型参数起标示作用,以区别于梯形,不参加计算

程序如下:

2. 编程:将上题以多文件方式组织,在area.h中声明各个area函数原型,在area.cpp中定义函数,然后在Exp_2.cpp中包含area.h,定义main函数并执行。

注意:using namespace std; 只能说明一次,或者说只能在一个文件中说明。

3. 分析程序:作用域、全局变量、局部变量和静态局部变量的应用示例。分析并写出下列程序的执行结果。

#include

using namespace std;

int a = 300, b = 400, c = 500;

void funa( int c)

{

static int a = 5;

a+=c;

cout<

}

void funb(int a)

{

a= b;

cout<

}

void func()

{

int c=0;

cout<

::c-=100;

}

int main(){

funa(a);

funb(b);

funa(b);

func();

cout<

return 0;

}

4. 编程:以函数的形式求某个数的绝对值,并编程调用它们。

5. 希望对不同类型的数据完成相似功能时往往采用函数重载的方法。例如要在程序中用不同的格式输出不同类型的数据,可以编制多个同名的output()函数,这些函数的参数类型互不相同,对不同的参数设计不同的输出格式。

编程:使用函数重载编程实现自动适应字符串、整数和实数的输出。

6.从键盘上输入一串字符,以回车结束,统计其中数字字符个数。

7.计算并输出-1+1/2-1/4+1/8…的和,直到最后一项的绝对值小于等于10的-6幂为止。

第一章一元函数的极限

第一章 一元函数的极限 §1.1 利用定义及迫敛性定理求极限 设R 表示实数集合,*R 表示扩张的实数集,即*R {}+∞∞-?=,R . 例1 若*lim R a a n n ∈=+∞ →.证明*21lim R a n a a a n n ∈=++++∞→ (算术平均值收敛公式). 证明 (1)设R a ∈,由a a n n =+∞ →lim ,0>?ε,01>?N ,当1N n >时, 2 ε< -a a n . 因此 a n a a a n -+++ 21 n a a a a a a n ) ()()(21-++-+-= n a a a a a a N -++-+-≤121 n a a a a n N -++-+ + 11 21ε?-+≤ n N n n A 2 ε+N ,当2N n >时, 2 ε 时, a n a a a n -+++ 21εε ε=+<22. (2)设+∞=+∞ →n n a lim ,则0>?M ,01>?N ,当1N n >时,M a n 3>. 因此 n a a a n +++ 21 n a a a N 121+++= n a a a n N N ++++++ 2111M n N n n A 31?-+>, 其中121N a a a A +++= .由于0→n A ,11→-n N n )(+∞→n ,所以存在02>N ,当2 N n >时, 2M n A <,211>-n N n .因此n a a a n +++ 21M M M =-?>2 1321. (3) 当-∞=+∞ →n n a lim 时,证明是类似的.(或令n n a b -=转化为(2)). 注 例1的逆命题是不成立的.反例()n n a 1-=),2,1( =n ,容易看出0lim 21=++++∞→n a a a n n , 但是极限n n a +∞ →lim 不存在.

计算方法 课内实验 插值法与函数逼近

《计算方法》课内实验报告 学生姓名:张学阳1009300132 及学号: 学院: 理学院 班级: 数学101 课程名称:计算方法 实验题目:插值法与函数逼近 指导教师 宋云飞讲师 姓名及职称: 朱秀丽讲师 尚宝欣讲师 2012年10月15日

目录 一、实验题目.......................................................... 错误!未定义书签。 二、实验目的.......................................................... 错误!未定义书签。 三、实验内容.......................................................... 错误!未定义书签。 四、实现结果.......................................................... 错误!未定义书签。 五、实验体会或遇到问题 (6)

插值法与函数逼近 二、实验目的 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解插值法及函数逼近方法的理论基础。 3.进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。 三、实验内容 1.已知函数在下列各点的值为 试用4次牛顿插值多项式)(4x P 及三次样条函数)(x S (自然边界条件)对数据进行插值。给出求解过程,并用图给出 (){},10,1,0),()(,08.02.0,,4 ===+=i x S y x P y i x y x i i i i i 及。 2.下列数据点的插值 可以得到平方根函数的近似。 (1)用这9个点作8次多项式插值)(8x L 。 (2)用三次样条(第一类边界条件)插值给出)(x S 。 给出求解过程,在区间[0,64]上作图,从得到的结果看,在区间[0,64]上哪种插值结果更精确?在区间[0,1]上两种插值哪个更精确? 3.由实验给出数据表 试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线。给出求解过程,用图表示实验数据曲线及三种拟合曲线。

实验四插值法

实验四、插值法 插值法是函数逼近的一种重要方法,它是数值积分、微分方程数值解等数值计算的基础与工具,其中多项式插值是最常用和最基本的方法。拉格朗日插值多项式的优点是表达式简单明确,形式对称,便于记忆,它的缺点是如果想要增加插值节点,公式必须整个改变,这就增加了计算工作量。而牛顿插值多项式对此做了改进,当增加一个节点时只需在原牛顿插值多项式基础上增加一项,此时原有的项无需改变,从而达到节省计算次数、节约存储单元、应用较少节点达到应有精度的目的。 一、实验目的 1、理解插值的基本概念,掌握各种插值方法,包括拉格朗日插值和牛顿插值等,注意其不同特点; 2、通过实验进一步理解并掌握各种插值的基本算法。 二、Matlab命令和程序 命令poly:创建一个向量,其分量为一个多项式的系数,该多项式具有给定的根。 命令polyval:求多项式的值, 命令 conv: 创建一个向量,其分量为一个多项式的系数,该多项式是另外两个多项式的积 polyval(C,2> >> P=poly(2> P=1 -2

Q=poly(3> Q=1 -3 >> conv(P,Q> ans= 1 -5 6 >> polyval(P,2> ans= 1、拉格朗日插值( 基于N+1个点,计算拉格朗日多项式> function [C,L]=lagran(X,Y> %input --X is a vector that contains a list of abscissasb5E2RGbCAP % Y is a vector that contains a list of ordinatesp1EanqFDPw %output--C is a matrix that contains the coefficient of the lagraneDXDiTa9E3d % interplatory polynomial % -- L is a matrix that contains the Lagrange coefficent polynomialsRTCrpUDGiT w=length(X>。 n=w-1。

数值分析实验四(龙格函数)

实验名称:龙格反例的数值实验 实验目的与要求: 1、了解切比雪夫多项式零点插值; 2、运用切比雪夫多项式零点插值法避免龙格现象。 3、与等距节点构造插值多项式比较。 实验内容: 龙格反例的数值实验 在区间[–5,5 ]上分别取11阶切比雪夫多项式的零点 22 )12(cos 5π+=k x k ( k = 0,1,2,……,10) 和等距节点作插值结点,计算函数211)(x x f +=在结点处的值 y k = f (x k )。构造插值多项式L 10(x ), ∑==10 010)()(k k k y x l x L 其中,∏≠=--=n k j j j k j k x x x x x l 0)()()(。取自变量点 t k = – 5 + 0.05k ( k =0,1,…,201),分别计算切比雪夫零点、等距节点插值多项式L k (x )和被插值函数f (x )在离散点t k ( k =0,1,…,201)上的值,并绘出三条曲线比较。 实验环境与器材: 9#505机房、《数值分析》 实验过程(步骤)或程序代码: function y=Lagrange(x,n,xx,yy) sum=0; %初始化 for k=1:n+1 lk=1; %初始化 for i=1:n+1 if k~=i lk=lk*(x-xx(i))/(xx(k)-xx(i)); end end sum=lk*yy(k)+sum; end y=sum; clc

clear for i=1:11 %下标只能从1开始 x1(i)=-5+10*(i-1)/10; x2(i)=5*cos((2*i-1)*pi/22); y1(i)=1/(1+x1(i)*x1(i)); y2(i)=1/(1+x2(i)*x2(i)); %y1,y2分别是在两种节点处得到的函数值 end h=0.05; for k=1:202 x3(k)=-5+(k-1)*h; y11(k)=Lagrange(x3(k),10,x1,y1); y22(k)=Lagrange(x3(k),10,x2,y2); y(k)=1/(1+x3(k)*x3(k)); %y11,y22分别为利用切比雪夫零点和等距节点构造出的插值多项式在离散点处的值 end plot(x3,y11,'r'); hold on plot(x3,y22,'g'); hold on plot(x3,y,'b') %被插值函数在离散点处值的曲线图 hold on xlabel('-5<=x<=5'); ylabel('y'); legend('f(x)=1/(1+x^2)','等距节点插值多项式','切比雪夫多项式零点插值多项式'); xlim([-5,5]) 实验结果与分析:

实验四 MATLAB程序设计

实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)

C++上机实验资料报告材料-实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的容及其所指的对象的容 6.联系通过动态存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示、街道地址、城市和邮编等属性,change_name()改变对象的属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:char name[11]、编号char number[7]、性别char sex[3]、生日birthday、号char id[16]。其中“出生日期”定义为一个“日期”类嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配存生成动态数组。通过Debug观察指针的容及其所指的对象中的容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷 贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有、街道地址、城市和邮编等私

第一章 一元函数极限(定理)

第一章 一元函数极限 §1.1 函数 一、有界函数 定义:设函数)(x f 在数集A 有定义,若函数值的集合 {}A x x f A f ∈=|)()( 有上界(有下界、有界),即M x f M x f M x f A x M ≤-≥≤∈?>?)(,)(()(,,0,则称函数)(x f 在A 有上界(有下界、有界)。 二、奇函数、偶函数 定义:函数)(x f 定义在数集A ,若A x ∈?,有A x ∈-且 )()()(()(x f x f x f x f -=-=-, 则称)(x f 为偶函数(奇函数)。奇函数图像关于原点对称,偶函数图像关于y 轴对称。 三、周期函数 §1.2 用定义证明极限的存在性 一、 用定义证明极限 二、 定义:εε<->?∈?>??=+∞ →a a N n N N a a n n n ,,,0lim ;

三、 定理 1))(lim x f a x →存在)(lim x f a x +→?与)(lim x f a x -→都存在,且=+→)(lim x f a x )(lim x f a x -→; 2))(lim x f x ∞→存在)(lim x f x +∞→?与)(lim x f x -∞→都存在,且=+∞→)(lim x f x )(lim x f x -∞→; 3))()()(lim x B x f B x f a x α+=?=→,其中0)(lim =→x a x α; 4)无穷小与有界函数的积为无穷小; 5)有限个无穷小的和或积为无穷小; 收敛数列的性质 1)唯一性:若数列{}n a 收敛,则它的极限是唯一的。 2)有界性:若数列{}n a 收敛,则数列{}n a 有界,即M a N n M n ≤∈?>?+,,0。 3)保序性:若a a n n =∞→lim 与b b n n =∞ →lim ,且b a <,则n n b a N n N N <>?∈?+,,。 推论:若a a n n =∞→lim 与b b n n =∞ →lim ,且)(,,n n n n b a b a N n N N <≤>?∈?+,则b a ≤。 函数极限的性质 1)唯一性:若)(x f 在a (∞)收敛,则它的极限是唯一的。 2)局部有界性: ①若b x f a x =→)(lim ,则δδ<-?>?a x x M 0:,0,0,有M x f ≤)(。 ②若b x f x =∞ →)(lim ,则A x x A M >?>?>?:,0,0,有M x f ≤)(。 3)保序性:若b x f a x =→)(lim 与c x g a x =→)(lim ,且c b <,则δδ<-?a x x 0:,0,有)()(x g x f <。 推论:若b x f a x =→)(lim 与c x g a x =→)(lim ,且δδ<-?a x x 0:,0,有)()(x g x f ≤()()(x g x f <)则c b ≤。 (其它极限形式,可类似给出)

插值法实验报告

实验二插值法 1、实验目的: 1、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。 2、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。 2、实验要求: 1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 2)编写上机实验程序,作好上机前的准备工作; 3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 4)分析和解释计算结果; 5)按照要求书写实验报告; 3、实验内容: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) 求满足插值条件的插值多项式及余项 1) 4、题目:插值法 5、原理: 拉格郎日插值原理: n次拉格朗日插值多项式为:L n (x)=y l (x)+y 1 l 1 (x)+y 2 l 2 (x)+…+y n l n (x)

n=1时,称为线性插值, L 1(x)=y (x-x 1 )/(x -x 1 )+y 1 (x-x )/(x 1 -x )=y +(y 1 -x )(x-x )/(x 1 -x ) n=2时,称为二次插值或抛物线插值, L 2(x)=y (x-x 1 )(x-x 2 )/(x -x 1 )/(x -x 2 )+y 1 (x-x )(x-x 2 )/(x 1 -x )/(x 1 -x 2 )+y 2 (x -x 0)(x-x 1 )/(x 2 -x )/(x 2 -x 1 ) n=i时, Li= (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) 6、设计思想: 拉格朗日插值法是根据n + 1个点x0, x1, ... x n(x0 < x1 < ... x n)的函数值f (x0), f (x1) , ... , f (x n)推出n次多項式p(x),然后n次多項式p (x)求出任意的点x对应的函数值f (x)的算法。 7、对应程序: 1 ) 三次拉格朗日插值多项式求x=0.5635时函数近似值 #include"stdio.h" #define n 5 void main() { int i,j; float x[n],y[n]; float x1; float a=1; float b=1; float lx=0; printf("\n请输入想要求解的X:\n x="); scanf("%f",&x1); printf("请输入所有点的横纵坐标:\n"); for(i=1;i

实验4函数文件

实验四 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 函数文件: function [e,ln,s,c]=plural(x) e=exp(x); ln=log(x); s=sin(x); c=cos(x); End 命令文件: x=input('请输入一个复数:'); [e,ln,s,c]=plural(x); e ln s c 运行结果: 请输入一个复数:3+4i e = -13.1288 -15.2008i ln = 1.6094 + 0.9273i s = 3.8537 -27.0168i c = -27.0349 - 3.8512i 2.一物理系统可用下列方程组来表示: ? ?????????????=??????????????????????????----g g m m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos θθ θθ θθ 从键盘输入m 1、m 2和θ的值,求N a a 121、、和N 2的值。其中g 取9.8,输入 θ时以角度为单位。 函数文件: function [a1,a2,N1,N2]=physis(m1,m2,t) g=9.8; A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;... m1*sin(t*pi/180),0,cos(t*pi/180),0;... 0,m2,-sin(t*pi/180),0;... 0,0,-cos(t*pi/180),1]; B=[0;m1*g;0;m2*g];

实验四 用窗函数法设计FIR数字滤波器

实验四 用窗函数法设计FIR 数字滤波器 实验项目名称:用窗函数法设计FIR 数字滤波器 实验项目性质:验证性实验 所属课程名称:数字信号处理 实验计划学时:2 一. 实验目的 (1)掌握用窗函数法设计FIR 数字滤波器的原理与方法。 (2)熟悉线性相位FIR 数字滤波器的特性。 (3)了解各种窗函数对滤波特性的影响。 二. 实验容和要求 (1) 复习用窗函数法设计FIR 数字滤波器一节容,阅读本实验原理,掌握设计步骤。 (2) 用升余弦窗设计一线性相位低通FIR 数字滤波器,截止频率 rad c 4 π ω= 。窗口长度N =15,33。要求在两种窗口长度情况下,分别求出()n h ,打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和20dB 带宽。总结窗口长度N 对滤波器特性的影响。 设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()ωj e H ,即 ()?????≤<≤=-π ωωωωωα ω c c j j d ,,e e H 0 其中2 1 -= N α ()() ()[]() a n a n d e e d e e H n h c j j j j d d c c --= = = ??- -- πωωπ ωπ ωαωω ωαωπ π ωsin 2121

(3) 33=N ,4πω=c ,用四种窗函数设计线性相位低通滤波器,绘制相应的幅频特性曲线,观察3dB 带宽和20dB 带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。 三. 实验主要仪器设备和材料 计算机,MATLAB6.5或以上版本 四. 实验方法、步骤及结果测试 如果所希望的滤波器的理想的频率响应函数为()ωj d e H ,则其对应的单位脉冲响应为 ()()ωπ ω ωπ πd e e H n h j j d d ?- = 21 (4.1) 窗函数设计法的基本原理是用有限长单位脉冲响应序列()n h 逼近 ()n h d 。由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数() n ω将()n h d 截断,并进行加权处理,得到: ()()()n n h n h d ω= (4.2) ()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率 响应函数()ωj e H 为 ()()n j N n j e n h e H ωω ∑-==1 (4.3) 式中,N 为所选窗函数()n ω的长度。 我们知道,用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的

数值分析(计算方法)实验一

《数值分析》 课程实验指导书 实验一 函数插值方法 一、问题提出 对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n == 。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: (1) j x 0.4 0.55 0.65 0.80 0.95 1.05 j y 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange 多项式5L ()x ,和分段三次插值多项式,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈ ) (2) j x 1 2 3 4 5 6 7 j y 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange 多项式6L ()x ,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈ ) 二、要求 1、 利用Lagrange 插值公式 00,()n n i n k k i i k k i x x L x y x x ==≠??-= ?-??∑∏编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式; 3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、 对此插值问题用Newton 插值多项式其结果如何。

四、实验分析: Lagrange 插值多项式的表达式: 1,,2,1,)()()(, )()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。 其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。 Newton 插值多项式如下: 10010,()()[,,]()k n n j k k j j k N x f x f x x x x -==≠=+?-∑∏ 其中: 00,0()()[,,]k i k i i j j j i k f x x x f x x ==≠-=∑∏ Newton 插值多项式的优点是:当每增加一个节点时,只增加一项多项式。 三、实验程序及注释 1、m 程序: function [c,l]=lagran(x,y) % x 为n 个节点的横坐标组成的向量,y 为纵坐标所组成的向量 % c 为所得插值函数的系数所组成的向量 w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if k~=j v=conv(v,poly(x(j)))/(x(k)-x(j)); end end l(k,:)=v; end c=y*l; function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); n=length(f); for i=1:n

一元函数求极限的若干方法

一元函数求极限的若干方法 (陕西师范大学 数学系,陕西 ) 摘 要:极限是数学分析中最基本的,也是最重要的概念之一,是研究微积分学的重要工具.因此掌握好极限的思想与方法是学好微积分的前提条件,针对这种情况,本文探讨了一些常用的求极限的方法 关键词:极限;方法 大家知道,极限是数学分析中最基本、也是最重要的概念之一,数学分析中许多深层次的理论及应用都是极限的拓展和延伸,如:连续、导数、微积分等都是由极限定义的,而离开了极限思想的数学分析就失去了其基础与价值,因此极限运算在数学分析中占有举足轻重的地位.由于极限定义的高度抽象使我们很难用极限本身的定义去求极限,而对极限的求法可谓是多种多样,针对这种情况,通过归纳和总结,罗列出一些常用的求法. 1 利用极限的定义求极限 极限是指无穷的趋于一个固定的数值,数学分析中的极限包括:数列极限和函数极限. 1.1 数列极限的定义 设{}n x 是一个数列,a 是定数,如果对任意给定的0>ε,总存在正整数N ,使得当N n >时有 ε<-a x n , 我们就称定数a 是数列}{n x 的极限.记为 a x n n =∞ →lim 或 ()∞→→n a a n . 例1 按定义证明01 lim =∞→a n n ,这里a 是常数. 证 由于 a a n n 1 01=-, 故对任给的0>ε,只要取11 1+??? ?????=a εN ,则当N n >时,便有 εN n a a <<11 即εn a <-01.

这就证明了 01 lim =∞→a n n . 例2证明2 23lim 33 n n n →∞=- 分析 由于()222399 3333n n n n n -=≤≥-- (1) 因此,对任给的0ε>,只要 9 n ε<,便有 2 233,3 n n ε-<- (2) 即当9 n ε > 时,(2)式成立.又由于(1)式是在3n ≥的条件下成立的,故应取 9max 3,.N ε?? =???? (3) 证 任给0ε>,取9max 3,.N ε?? =????据分析,当n>N 时有(2)式成立.于 是本题得证. 注 本例在求N 的过程中,(1)式中运用了适当放大的方法,这样求N 就比较方便.但应注意这种放大必须“适当” ,以根据给定的ε能确定出N .又(3)式给出的N 不一定是正整数.一般地,在定义1中N 不一定限于正整数,而只要它是正数即可. 1.2 函数极限的定义 函数极限的定义包括两个,一个是x 趋于∞时函数的极限,另一个是x 趋于 0x 时函数的极限. 1.2.1 x 趋于∞时函数的极限 设f 为定义在[)+∞,a 上的函数,A 为定数.若对任给的0>ε,存在正数 ()a M ≥,使得当M x >时有 ()ε<-A x f , 则称函数f 当x 趋于∞+时以A 为极限,记为 ()A x f x =+∞ →lim 或 ()()+∞→→x A x f .

计算方法-插值方法实验

实验一插值方法 一. 实验目的 (1)熟悉数值插值方法的基本思想,解决某些实际插值问题,加深对数值插值方法 的理解。 (2)熟悉Matlab 编程环境,利用Matlab 实现具体的插值算法,并进行可视化显示。 二. 实验要求 用Matlab 软件实现Lagrange 插值、分段线性插值、三次Hermite 插值、Aitken 逐步插值算法,并用实例在计算机上计算和作图。 三. 实验内容 1. 实验题目 (1 ) 已 知概 率积 分dx e y x x ?-= 2 2 π 的数据表 构造适合该数据表的一次、二次和三次Lagrange 插值公式,输出公式及其图形,并计算x =0.472时的积分值。 答: ①一次插值公式: 输入下面内容就可以得到一次插值结果 >> X=[0.47,0.48];Y=[0.4937452,0.5027498]; >> x=0.472; >> (x-X(2))/(X(1)-X(2))*Y(1)+(x-X(1))/(X(2)-X(1))*Y(2) ans =0.495546120000000 >> ②两次插值公式为: 输入下面内容就可以得到两次插值结果 >> X=[0.46,0.47,0.48];Y=[0.4846555,0.4937452,0.5027498]; >> x=0.472; >>(x-X(2))*(x-X(3))/((X(1)-X(2))*(X(1)-X(3)))*Y(1)+(x-X(1))*(x-X(3))/((X(2)-X(1))*(X(2)-X(3)))*Y(2)+(x-X(2))*(x-X(1))/((X(3)-X(2))*(X(3)-X(1)))*Y(3) i 0 1 2 3 x 0.46 047 0.48 0.49 y 0.4846555 0.4937452 0.5027498 0.5116683

C语言实验四实验报告——函数

一、实验项目名称 函数 二、实验目的 1.掌握C函数的定义方法、函数的调用方法、参数说明以及返回值。掌握实参与形参的对应关系以及参数之间的“值传递”的方式;掌握函数的嵌套调用及递归调用的设计方法; 2.掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法; 3.在编程过程中加深理解函数调用的程序设计思想。 三、实验内容 1.多模块的程序设计与调试的方法; 2.函数的定义和调用的方法; 3.用递归方法进行程序设计。 具体内容: 1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数。如果num 是素数,返回该数;否则返回0值。 要求: (1)在主函数输入一个整数num,调用该函数后,输出num是否是素数的信息。输出格式为:num is prime或num is not prime。 (2)分别输入以下数据:0,1,2,5,9,13,59,121,运行程序并检查结果是否正确。 2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是123,返回值为6)。 要求:num由主函数输入,调用该函数后,在主函数内输出结果。 3.编写函数,mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: (1)在主函数中输入一对数据a和b,调用该函数后,输出结果并加以相应的说明。例如:在主函数中输入:10,5 ,则输出:10 is multiple of 5. (2)分别输入下面几组数据进行函数的正确性测试:1与5、5与5、6与2、6与4、20与4、37与9等,并对测试信息加以说明。 4.编写一个计算组合数的函数combinNum(int m,int n)。计算结果由函数返回。 计算组合数的公式是: c(m,n)=m!/(n!*(m-n)!) 要求: (1)从主函数输入m和n的值。对m>n、m

求一元函数极限的若干种方法.

求一元函数极限(含数列)的若干种方法 内容摘要:极限是数学分析中一个非常重要的概念,它是研究分析方法的重要理 论基础。我们知道,许多重要的概念如连续、导数、定积分、无穷级数的和以及广义积分等都是用极限来定义的。因此掌握好求极限的方法就显得非常重要。 其中二元函数的极限是在一元函数的基础上发展起来的,二者既有联系也有区别。本文通过部分例题的解析,以详细介绍一元函数极限的求法为主。归纳了常用的十种求极限方法, 即: 运用极限的定义证明;利用等价无穷小量代换和初等变形来求极限;用两个重要的极限来求函数的极限;利用变量替换求极限;利用迫敛性定理来求极限;利用洛比达法则求函数的极限;利用泰勒公式求极限;利用微分中值定理和积分中值定理求极限;利用积分定义求极限;求极限其他常用方法。并列举了大量的实例加以说明。 关键词:迫敛性定理中值定理洛必达法则 A number of ways to seek a function limit (including the number of columns) Abstract:The limit is a very important concept in mathematical analysis, it is an important theoretical basis for research and analytical methods. We know that many important concepts such as continuity, derivative, definite integral, infinite series and generalized integral to define the limit. Therefore it is very important to master well limit. The limits of the function of two variables is on the basis of the function of one variables, the two have connection and have distinction. This article through the part of example analysis, to introduce the limit of the function of one variables. Summarizes the ten ways: Using the definition of the limits of proof; equivalent Infinitesimal Substitution and the primary deformation; two important limits to seek the limits of functions; variable substitution; the squeeze theorem; L'Hospital Rule; the Taylor formula; the mean value theorem and the integral mean value theorem to the limit; using the integral definition; other commonly used methods.And cited a number of examples to illustrate. Key words:The squeeze theorem Mean Value Theorem L'Hospital Rule

实验5 插值方法

实验5 插值方法 一、实验目的及意义 [1] 了解插值的基本原理 [2] 了解拉格朗日插值、线性插值、样条插值的基本思想; [3] 了解三种网格节点数据的插值方法的基本思想; [4] 掌握用MATLAB 计算三种一维插值和两种二维插值的方法; [5] 通过范例展现求解实际问题的初步建模过程; 通过自己动手作实验学习如何用插值方法解决实际问题,提高探索和解决问题的能力。通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。提高写作、文字处理、排版等方面的能力。二、实验内 容 1.编写拉格朗日插值方法的函数M 文件;2.用三种插值方法对已知函数进行插值计算,通过数值和图形输出,比较它们的效果;3.针对实际问题,试建立数学模型,并求解。 三、实验步骤 1.开启软件平台——MATLAB ,开启MATLAB 编辑窗口; 2.根据各种数值解法步骤编写M 文件 3.保存文件并运行; 4.观察运行结果(数值或图形); 5.写出实验报告,并浅谈学习心得体会。 四、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会) 基础实验 1. 一维插值 利用以下一些具体函数,考察分段线性插值、三次样条插值和拉格朗日多项式插值等三种插值方法的差异。 1) 2 11 x +,x ∈[-5,5]; 2)sin x , x ∈[0,2π]; 3)cos 10 x , x ∈[0,2π]. 注意:适当选取节点及插值点的个数;比较时可以采用插值点的函数值与真实函数值的 差异,或采用两个函数之间的某种距离。 2.高维插值 对于二维插值的几种方法:最邻近插值、分片线性插值、双线性插值、三次插值等,利用如下函数进行插值计算,观察其插值效果变化,得出什么结论? 1) ())(sin ),(px t t x f -=ω,参数p =1/2000~1/200;采样步长为:t =4ms~4s ;

C++ 实验4 函数的定义与调用(下)

实验4 函数的定义与调用(下) Visual C++控制台应用程序设计 一、实验目的 1、掌握变量的分类、作用域、生存期、存储类别; 2、掌握递归函数的定义以及调用方法; 3、掌握函数的重载。 二、实验内容 Visual C++控制台应用程序设计 要求:(1)自己独立编写出完整程序,注意书写格式,熟练掌握程序的结构; (2)按照正确的步骤进入vc++环境,在自己创建的工程中录入源程序,消除语法错误,编译、连接程序; (3)运行程序,输入数据观察结果。 1、分析并写出下列程序的执行结果。 #include using namespace std; int a=300,b=400,c=500; void funa( int c) {static int a=5; a+=c; cout<

cout<

相关文档
最新文档