论文部分内容阅读
【摘要】微积分是大学基础数学中的一门主要理论课程,传统的微积分强调基本定义、定理及其证明,导致这门课程的专业服务性价值没有很好地体现出来.本文以微积分中的泰勒公式在计算机专业中的应用为例,对微积分的专业化探索起到抛砖引玉的效果.
【关键词】微积分;专业化;泰勒公式
【基金项目】项目名称:上海市高校青年教师培养资助计划(高校线性代数课程教学专业化研究);项目编号:ssy11021.
微积分是大学基础数学中的一门主要理论课程,在普通高等院校本科生各专业中普遍开设,在培养具有良好数学素质的应用型人才方面起着特别重要的作用.因此,微积分的教学内容和方向一直是高校数学教师们十分关心的问题.
传统的微积分教学偏重自身的理论体系,强调微积分的基本定义、定理及其证明,教学内容层层递进,逻辑性非常强,学生可以学到完整的微积分知识体系,但由于教学中缺乏与专业相关的内容,各种版本教材甚少与学生所学专业领域相关,导致这门课程的专业服务性价值没有很好地体现出来.因此,在统一教材的基础上,开发出具有专业特色的微积分教学模块变得尤为重要,本文正是对微积分在计算机专业的教学中的应用进行探索.
本文介绍计算机是如何计算三角函数和反三角函数的,计算机只能计算加法,其他形式的运算(减、乘、除等),都要转换为加法进行运算.对三角函数的求解需要将三角函数转换为多项式的运算,泰勒公式提供了理论依据.
泰勒(Taylor)中值定理:如果函数f(x)在含有x0的某个开区间(a,b)内具有直到(n 1)阶的导数,则对任一x∈(a,b),f(x)可以表示为(x-x0)的一个n次多项式与一个余项Rn(x)之和:f(x)=f(x0) f′(x0)(x-x0) f″(x0)2!(x-x0)2 … f(n)(x0)n!(x-x0)n Rn(x),
其中Rn(x)=f(n 1)(ξ)(n 1)!(x-x0)n 1(ξ在x0与x之间).
f(x)=∑nk=0f(k)(x0)k!(x-x0)k Rn(x)
称为f(x)按(x-x0)的幂展开的带有拉格朗日余项的n阶泰勒公式,而Rn(x)的表达式称为拉格朗日余项.
在泰勒公式中,如果取x0=0,则ξ在0和x之间.因此,可以令ξ=θx(0<θ<1),從而泰勒公式变成较简单的形式,即所谓的带有拉格朗日型余项的麦克劳林(Maclaurin)公式:
f(x)=f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn f(n 1)(θx)(n 1)!xn 1(0<θ<1),
f(x)=f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn o(xn).
由上式可以得到近似公式:
f(x)≈f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn.
从泰勒中值定理可以知道,如果函数f(x)在含有x0的某个开区间(a,b)内具有直到(n 1)阶的导数,就可以将其求解转换为多项式进行计算,求解的精度取决于函数多项式展开的阶数,并且误差为拉格朗日余项的值,这样为三角函数的计算机数值求解提供了方法,我们可以将三角函数用泰勒公式展开,然后转换为多项式进行求解.
本文以正弦函数为例,介绍求解过程,sin(x)展开为带有拉格朗日型余项的n阶麦克劳林(Maclaurin)公式:
sin(x)=x-x33! x55!-… (-1)m-1x2m-1(2m-1)! R2m,
其中误差R2m为R2m(x)=sinθx (2m 1)π2(2m 1)!x2m 1=(-1)m-1cosθx(2m 1)!x2m 1(0<θ<1).
这样我们就可以根据需要的精度对sin(x)进行展开,因为展开的阶数越多精度越高,但是,运算的时间就会更长,因为sin(x)等三角函数是计算机数值求解中常用的函数,在一个求解过程中会很多次地使用,同时,很多计算是有实时性要求的,就是说一个计算要在规定的时间内执行完成,这样就需要找到合适的阶数对正弦函数进行展开.
下面本文以C语言为例,讲解C语言实现sin(x)的过程.
#include///标准输入输出头文件
#include///数学相关头文件
#define COUNT 3///计算的次数,次数越多,精度越高,为3时,正好是5阶
///求n的阶乘,输入n,返回n的阶乘
int factorial(int_n)
{
///定义返回值,当n小于等于1时,初值为1
int result=1;
while(_n>1)
{
result*=_n;
_n-=1;
}
return result;///返回计算结果
}
//#define M_PI3.14159265358979323846/*pi*/定义在math.h中
///正弦函数,输入为角度值,为简化处理,输入的值限制在[0,90]范围
double sin(double_arc)
{
///角度转换为弧度
_arc=(_arc*M_PI)/180;
///返回结果变量,为简化计算,初值为传入的弧度值
double result=_arc;
///循环进行计算,每一次循环,精度会增加
for(int i=1,sign=-1;i {
int orderNumer=2*i 1;///orderNumer为计算的阶数,在正弦函数中,偶数项为0,只需要计算奇数项的值
_arc =sign*(1.0/factorial(orderNumer)*pow(_arc,orderNumer));
}
///当COUNT=3时,以上循环等价于下面的计算公式
///result=_arc-(1.0/factorial(3))*pow(_arc,3) (1.0/factorial(5))*pow(_arc,5);
return result;///返回计算结果
}
以上是用C语言实现的正弦函数的算法代码,可以通过COUNT变量控制求解的精度,让学生更加深刻地理解泰勒公式的含义与应用,其他的三角函数和反三角函数可以通过类似的方法进行计算,本文不再进行展开.
C语言是计算机专业的一门基础编程语言,通过C语言实现求解过程,可以使计算机专业的学生更深入地了解泰勒公式及其表达的含义,以及结合自己的专业知识运用泰勒公式,提高学习的兴趣;更进一步,可以推广到将微积分的知识应用到计算机专业的学习中,为微积分专业化探索起到抛砖引玉的作用.
微积分是大学数学的一门基础课程,本文通过其中的一个知识点泰勒公式,对泰勒公式在计算机专业的应用进行展开,丰富了微积分课程与计算机专业的相关内容,更好地体现了这门课程的专业服务性价值.
【参考文献】
[1]同济大学数学系.高等数学·上册[M].北京:高等教育出版社,2007.
[2]尹雪.线性代数教学专业化探索[J].数学学习与研究,2013(5):16.
【关键词】微积分;专业化;泰勒公式
【基金项目】项目名称:上海市高校青年教师培养资助计划(高校线性代数课程教学专业化研究);项目编号:ssy11021.
微积分是大学基础数学中的一门主要理论课程,在普通高等院校本科生各专业中普遍开设,在培养具有良好数学素质的应用型人才方面起着特别重要的作用.因此,微积分的教学内容和方向一直是高校数学教师们十分关心的问题.
传统的微积分教学偏重自身的理论体系,强调微积分的基本定义、定理及其证明,教学内容层层递进,逻辑性非常强,学生可以学到完整的微积分知识体系,但由于教学中缺乏与专业相关的内容,各种版本教材甚少与学生所学专业领域相关,导致这门课程的专业服务性价值没有很好地体现出来.因此,在统一教材的基础上,开发出具有专业特色的微积分教学模块变得尤为重要,本文正是对微积分在计算机专业的教学中的应用进行探索.
本文介绍计算机是如何计算三角函数和反三角函数的,计算机只能计算加法,其他形式的运算(减、乘、除等),都要转换为加法进行运算.对三角函数的求解需要将三角函数转换为多项式的运算,泰勒公式提供了理论依据.
泰勒(Taylor)中值定理:如果函数f(x)在含有x0的某个开区间(a,b)内具有直到(n 1)阶的导数,则对任一x∈(a,b),f(x)可以表示为(x-x0)的一个n次多项式与一个余项Rn(x)之和:f(x)=f(x0) f′(x0)(x-x0) f″(x0)2!(x-x0)2 … f(n)(x0)n!(x-x0)n Rn(x),
其中Rn(x)=f(n 1)(ξ)(n 1)!(x-x0)n 1(ξ在x0与x之间).
f(x)=∑nk=0f(k)(x0)k!(x-x0)k Rn(x)
称为f(x)按(x-x0)的幂展开的带有拉格朗日余项的n阶泰勒公式,而Rn(x)的表达式称为拉格朗日余项.
在泰勒公式中,如果取x0=0,则ξ在0和x之间.因此,可以令ξ=θx(0<θ<1),從而泰勒公式变成较简单的形式,即所谓的带有拉格朗日型余项的麦克劳林(Maclaurin)公式:
f(x)=f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn f(n 1)(θx)(n 1)!xn 1(0<θ<1),
f(x)=f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn o(xn).
由上式可以得到近似公式:
f(x)≈f(0) f′(0)x f″(0)2!x2 … f(n)(0)n!xn.
从泰勒中值定理可以知道,如果函数f(x)在含有x0的某个开区间(a,b)内具有直到(n 1)阶的导数,就可以将其求解转换为多项式进行计算,求解的精度取决于函数多项式展开的阶数,并且误差为拉格朗日余项的值,这样为三角函数的计算机数值求解提供了方法,我们可以将三角函数用泰勒公式展开,然后转换为多项式进行求解.
本文以正弦函数为例,介绍求解过程,sin(x)展开为带有拉格朗日型余项的n阶麦克劳林(Maclaurin)公式:
sin(x)=x-x33! x55!-… (-1)m-1x2m-1(2m-1)! R2m,
其中误差R2m为R2m(x)=sinθx (2m 1)π2(2m 1)!x2m 1=(-1)m-1cosθx(2m 1)!x2m 1(0<θ<1).
这样我们就可以根据需要的精度对sin(x)进行展开,因为展开的阶数越多精度越高,但是,运算的时间就会更长,因为sin(x)等三角函数是计算机数值求解中常用的函数,在一个求解过程中会很多次地使用,同时,很多计算是有实时性要求的,就是说一个计算要在规定的时间内执行完成,这样就需要找到合适的阶数对正弦函数进行展开.
下面本文以C语言为例,讲解C语言实现sin(x)的过程.
#include
#include
#define COUNT 3///计算的次数,次数越多,精度越高,为3时,正好是5阶
///求n的阶乘,输入n,返回n的阶乘
int factorial(int_n)
{
///定义返回值,当n小于等于1时,初值为1
int result=1;
while(_n>1)
{
result*=_n;
_n-=1;
}
return result;///返回计算结果
}
//#define M_PI3.14159265358979323846/*pi*/定义在math.h中
///正弦函数,输入为角度值,为简化处理,输入的值限制在[0,90]范围
double sin(double_arc)
{
///角度转换为弧度
_arc=(_arc*M_PI)/180;
///返回结果变量,为简化计算,初值为传入的弧度值
double result=_arc;
///循环进行计算,每一次循环,精度会增加
for(int i=1,sign=-1;i
int orderNumer=2*i 1;///orderNumer为计算的阶数,在正弦函数中,偶数项为0,只需要计算奇数项的值
_arc =sign*(1.0/factorial(orderNumer)*pow(_arc,orderNumer));
}
///当COUNT=3时,以上循环等价于下面的计算公式
///result=_arc-(1.0/factorial(3))*pow(_arc,3) (1.0/factorial(5))*pow(_arc,5);
return result;///返回计算结果
}
以上是用C语言实现的正弦函数的算法代码,可以通过COUNT变量控制求解的精度,让学生更加深刻地理解泰勒公式的含义与应用,其他的三角函数和反三角函数可以通过类似的方法进行计算,本文不再进行展开.
C语言是计算机专业的一门基础编程语言,通过C语言实现求解过程,可以使计算机专业的学生更深入地了解泰勒公式及其表达的含义,以及结合自己的专业知识运用泰勒公式,提高学习的兴趣;更进一步,可以推广到将微积分的知识应用到计算机专业的学习中,为微积分专业化探索起到抛砖引玉的作用.
微积分是大学数学的一门基础课程,本文通过其中的一个知识点泰勒公式,对泰勒公式在计算机专业的应用进行展开,丰富了微积分课程与计算机专业的相关内容,更好地体现了这门课程的专业服务性价值.
【参考文献】
[1]同济大学数学系.高等数学·上册[M].北京:高等教育出版社,2007.
[2]尹雪.线性代数教学专业化探索[J].数学学习与研究,2013(5):16.