用泰勒公式和麦克劳林林公式计算sin9°的近似值

共有 2002 人关注过本帖
标题:利用泰勒级数计算sinx
等 级:论坛游民
帖 子:11
专家分:21
&&问题点数:0&&回复次数:0&&&
利用泰勒级数计算sinx
编写程序,利用级数和计算sin(x)=x/1-x^3/3!+x^5/5!-x^7/7!+x^9/9!+..........+(-1)^(n-1)*x^(2n-1)/(2n-1)!。
输入要计算的项数n和弧度x,输出sin(x)的值。
有多组数据,每组包含一个整数项数n和一个实数x。
sin(x)的值(保留3位小数)。
上面那是题目要求
我自己按照本论坛的帖子修改一下写了这个函数
#include&stdio.h&
#include&math.h&
double sin(double x,int n)
&&& double c,y;
&&& for(i=2.c=x;i&=n;i++)
&&&&&&&&y+=c;
&&&&&&&&c*=-x*x;
&&&&&&&&c/=2*i;
&&&&&&&&c/=2*i+1;
int main()
&&& double x,z;
&&& scanf(&%d%lf&,&n,&x);
&&& z=sin(x,n);
&&& printf(&%.3lf&,z);
&&& return 0;
但不知道为什么输出结果却为-00.000,,怎么就出现问题了- -。希望有人可以指点下
搜索更多相关主题的帖子:
&&&&&&&&&&&&
版权所有,并保留所有权利。
Powered by , Processed in 0.026560 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved2509人阅读
c++专区(281)
首先是自己写的代码如下:
// sinx.cpp : 定义控制台应用程序的入口点。
#include &stdafx.h&
#include &math.h&
//该函数计算阶乘
double ProductFunc(double x)
double product =x;
while (1!=x)
product *= (--x);
double myTestFunc(double inputx)
double fenzi =
int fuhao = 1;
double fenmu = 1;
//分母总和
double fenmuS = 1;
//记录总结果总和
double sum = 0;
//循环递归调用
//累加计算
sum += fuhao*fenzi /fenmuS;
//分子变化
fenzi *= inputx*
//符号变化
fuhao = fuhao *(-1);
//分母变化
fenmu += 2;
//分母总和变化
fenmuS = ProductFunc(fenmu);
} while (abs(fenzi/fenmu)&1e-5);//循环条件
//返回总和
#define PI 3.1415926
int _tmain(int argc, _TCHAR* argv[])
double inputx = (PI)/6;
double kk = myTestFunc(inputx);
double kkk = sin(inputx);
对比大牛代码:
先听故事,再编程序。故事是这样的:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?他说:是啊,太乐了!故事讲完了。不懂吗?好好学高数。否则,挂了不冤。
编程序求出sin(π/2)、cos(87°)
程序的要求是这样的:(1)求sin、cos时,不能用数学库函数(即不得用#include&Cmath&),而是自己编函数实现,为区别,可以分别起名为mysin和mycos;(2)自定义函数要写在main函数之后;(3)自定义函数的效率问题必须考虑;(4)关于精度:当最后一项的绝对值小于0.00001时,累加结束。
实验目的:学会使用自定义函数解决实际问题
实验内容:定义自定义函数,计算sin和cos的近似值
【先上调试后正确的程序】此程序上我也经历了和大家一样的磨难,犯的错误很“隐蔽”,将在后面细表。
运行结果:
经验积累:
1. 做科学计算时,需要对所用方法的数学性质有所了解
2. 取合适的变量名(sum,x_pow,item,n,fact,sign)有助于以一种清晰的思路解题,保证了程序的可读性
3. 对于复杂的计算,不妨多设几个变量,将他们间的关系分清楚,可以会多费些内存,但对正确性的保证无可替代
& 【下面讲讲我犯的愚蠢的错误】仔细看看这个程序,和我一起分析清楚问题,是我对大家最大的贡献。
& 原先,我的nysin函数是这样写的,貌似合理:
&&据此计算得到sin(pi/2)的结果是0.911557。人的心理一般是这样的,没错呀?怎么会错呢?我怎么会错呢?看了一遍又一遍,结果当然是我没有错,然而输出结果和库函数给出的结果就是不一样。上周三我在准备和这个错误一直作斗争,已经过了12:00点了,得吃饭,13:20 需要从家出发,去教室上课,但是实验报告的模板还得出来。
& 怎么办?泰勒公式会有问题?我没错!带着这个心理,我在指导书写下了泰勒公式可能的误差的文字。现在想来,这是多么不严谨的做法,以至于后来一再改模板。
& 逐渐想到,还是程序中有错误。我们现在一起找一下。
& 针对泰勒公式:
& 在变量定义的同时,通过赋初值,已经考虑了将x加到sum中:
&&& &double sum=x,item=x;
&&& &int n=1,fact=1,sign=-1;
& 下面需要构造进入循环以后将各项一正一负地累加到sum中。
& 当第1次进行循环:
&&& fact=fact*(n+1)*(n+2);& 得到了3!
&&& item =item*x*x/fact*& 求得要加的项是-x^3/3!,没错。(x^3表示x的3次方,在此只为方便表达,并不是C++中的合法运算。)
&&& sum+= 得到了x-x^3/3!。
&&& 随后sign变为1、n自增2变为5。都没有问题。
& 第2次进入循环:
&&& fact=fact*(n+1)*(n+2);& 得到了5!,没错
&&& item = item*x*x/fact*呢?这时才发现item将变为(-x^3/3!)*x*x/5!*1=-(x^5)/(3!*5!),不仅分母不对,符号也不对。
& !!!!
& 这时,只有敲自己的脑袋了(师生似乎都一样的)。
& 于是,有了上面提交的结果。
& 仔细反思,这儿犯的错误根源是,让item变量承担了多项职责。我们设置变量的原则是,每个变量的功能尽可能单一。
& 再看正确做法中,fact、 x_pow、item 、sum和sign的含义,清楚多了。很多同学的程序中,即使功能单一,用诸如a、b、c、d、e、f、g等做变量,只能搞糊涂自己。
& 至于mycos,类似的问题,不再多说。
& 【同学们解法中的一个典型错误】
& 有不止一位同学的程序中,函数定义由double mysin(double x)开始,这没有问题,x是形式参数。
& 但是在函数体内,有些同学对x重新赋值:x=pi/2;有些同学将本该出现x的地方直接写作了(pi/2)。的确,这样做能够求出sin(pi/2)的值,但是,这也使得你定义的函数只能求得sin(pi/2)的值了。我后悔在任务中应该多加一个求sin(pi/4),这样能启发同学们改过来。
& 一定要注意,尽管我们编程序解决某个具体问题,但是写出的函数还是要“通用”一些才好,这体现出的是程序与数据的“独立性”。慢慢体会吧。
看大牛的结果挺好,于是决定,将自己的代码与大牛对比:
关于精度控制,不好控制,输出代码中可以看出,用泰勒公式5次以后就可以完全近似sin的值(对90度来说);
对比代码如下:
// sinx.cpp : 定义控制台应用程序的入口点。
#include &stdafx.h&
#include &math.h&
#include &iostream&
//该函数计算阶乘
double ProductFunc(double x)
double product =x;
while (1!=x)
product *= (--x);
double myTestFunc(double inputx)
double fenzi =
int fuhao = 1;
double fenmu = 1;
//分母总和
double fenmuS = 1;
//记录总结果总和
double sum = 0;
int i = 1;
//循环递归调用
cout&& &第&&&i&&&次循环,分子为:&&&fenzi&&
cout&& &第&&&i&&&次循环,分母为:&&&fenmuS&&
sum += fuhao*fenzi /fenmuS;
cout&& &第&&&i++&&&次循环&&&&总和为:&&&sum&&
//分子变化
double kkkk =
fenzi *= inputx*
//符号变化
fuhao = fuhao *(-1);
//分母变化
fenmu += 2;
//分母总和变化
fenmuS = ProductFunc(fenmu);
} while (i&7/*(fenzi/fenmu)&1e-1*/);//循环条件
//返回总和
//下面定义myabs函数
double myabs(double x)
return ((x&=0)?x:-x);
//下面定义mysin函数
double mysin(double x)
double sum=x,x_pow=x,
int n=1,fact=1,sign=1;
//定义变量时赋初值,已经将第一项考虑到累加和sum中
cout&& &对比第&&&i++&&&次循环&&&&总和为:&&&sum&&
fact=fact*(n+1)*(n+2);
//fact用于表示阶乘,在公式中作分母
x_pow*=x*x;
//x_pow是分子中用于表示阶乘,在公式中作分母
//确定即将要累加的这一项的符号
item =x_pow/fact* //计算出要累加的项
//将该项累加上去
}while(i&7/*myabs(item)&1e-1*/);
#define PI 3.1415926
int _tmain(int argc, _TCHAR* argv[])
double inputx = PI/2;
double k = mysin(inputx);
double kk = myTestFunc(inputx);
double kkk = sin(inputx);
system(&pause&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1320284次
积分:20691
积分:20691
排名:第267名
原创:728篇
转载:18篇
评论:256条
(1)(1)(13)(18)(9)(14)(13)(5)(22)(18)(4)(8)(22)(36)(5)(29)(23)(13)(17)(36)(36)(13)(51)(5)(1)(9)(51)(28)(74)(17)(46)(48)(23)(41)[基本不等式及其应用]JQGRID 基本用法及示例、换肤等
· · · ·
您当前的位置: → [基本不等式及其应用]JQGRID 基本用法及示例、换肤等
[基本不等式及其应用]JQGRID 基本用法及示例、换肤等
篇一 : JQGRID 基本用法及示例、换肤等今天让我倒腾半天的居然不是写我的javaEE框架,而是更换jqgrid的皮肤。我是相当的讨厌jqgrid的默认皮肤,它总让我想起一直想学而都没学过的EXTJS,看多了那种淡蓝色的皮肤太多了绝对视觉疲劳,所以这篇博文就从jqgrid换肤讲起吧,这个过程在网络上找到的资料比较少,因此我今天的博文还是很有实用价值的。不废话了,下面开始吧!首先我们在浏览器地址栏里填入地址:blog/?page_id=6,这是jqgrid的下载界面,如下图:点击Demo files链接,下载最新的jqgrid_demo40.zip压缩包,解压后我把示例程序放到Apache Server的htdocs目录下,启动apache web服务器。然后我在浏览器地址栏里填入地址:,界面如下:这就是我所说的恶心皮肤了,我现在更换jqgrid的皮肤,这里使用到的是jquery的UI程序,我们在浏览器填入地址/themeroller,我们在这里选择我们喜欢的皮肤,我比较喜欢baidu和google那种简洁的页面风格,所以我首先的UI是Smoothness和Overcast两种,Smoothness以前我使用过,今天我选择Overcast(颜色有点暗,但是和我博客的皮肤还是有点相配的),效果如下图:下载的UI压缩包的名称是jquery-ui-1.8.16.custom.zip,解压后我们在jquery-ui-1.8.16.custom\development-bundle\themes路径下找到overcast包,将这个包复制一下,拷贝到jqgrid_demo40\themes路径下。下面我们修改jqgrid_demo40示例代码里导航页面的代码,这里要特别提醒下,我们从网站上下载的jqgrid demo代码中的jqgrid.html页面里面有一个javascript脚本引入文件:&script src="js/jquery.js" type="text/javascript"&&/script&而实际上js包下面没有jquery.js文件,里面只有jquery.min.js文件,我们将这段代码修改成:&script src="js/jquery.min.js" type="text/javascript"&&/script&那么apache web服务器下的示例代码就会正确显示了。下面我们导入新的皮肤,很简单,只要将下面代码替换进去就可以了(上面是原代码,下面是新添代码,原代码要被注释掉):&link rel="stylesheet" type="text/css" media="screen" href="themes/redmond/jquery-ui-1.8.2.custom.css" /&-----------------------------------------------------------------------------&link rel="stylesheet" type="text/css" media="screen" href="themes/overcast/jquery-ui-1.8.16.custom.css" /&&!--&link rel="stylesheet" type="text/css" media="screen" href="themes/redmond/jquery-ui-1.8.2.custom.css" /&--&我们再在浏览器地址栏里填入地址:,界面如下:哈哈,终于换成我喜欢的皮肤了~~~。我将在我的javaEE框架里加入jqgrid组件。我将jqgrid demo程序里的js包和themes包下的文件导入到工程里,如下图:在WebContent包下建立main.jsp页面,这个将是我的工程里的主页面,main.jsp代码如下:&%@ page language="java" contentType="text/ charset=UTF-8"pageEncoding="UTF-8"%&&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&&html&&head&&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&&title&主页面&/title&&link rel="stylesheet" type="text/css" media="screen" href="themes/overcast/jquery-ui-1.8.16.custom.css"/&&link rel="stylesheet" type="text/css" media="screen" href="themes/ui.jqgrid.css"/&&script src="js/jquery.min.js" type="text/javascript"&&/script&&script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"&&/script&&script src="js/jquery.layout.js" type="text/javascript"&&/script&&script src="js/i18n/grid.locale-en.js" type="text/javascript"&&/script&&script src="js/jquery.jqGrid.min.js" type="text/javascript"&&/script&&script src="js/jquery.tablednd.js" type="text/javascript"&&/script&&script src="js/jquery.contextmenu.js" type="text/javascript"&&/script&&script src="js/ui.multiselect.js" type="text/javascript"&&/script&&/head&&body&&table id="dataGrid"&&/table&&/body&&/html&&script type="text/javascript"&jQuery(document).ready(function(){jQuery("#dataGrid").jqGrid({datatype: "local",//数据类型height: 250,//高度colNames:['编号','日期', '客户', '数量','税金','总金额','备注'],//列名colModel:[{name:'id',index:'id', width:60, sorttype:"int"},{name:'invdate',index:'invdate', width:90, sorttype:"date"},{name:'name',index:'name', width:100},{name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},{name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},{name:'total',index:'total', width:80,align:"right",sorttype:"float"},{name:'note',index:'note', width:150, sortable:false}],multiselect: true,//支持多项选择caption: "jqgrid测试"//列表标题});var mydata = [{id:"1",invdate:"",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},{id:"2",invdate:"",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},{id:"3",invdate:"",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},{id:"4",invdate:"",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},{id:"5",invdate:"",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},{id:"6",invdate:"",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},{id:"7",invdate:"",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},{id:"8",invdate:"",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},{id:"9",invdate:"",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}];//测试数据for(var i=0;i&=mydata.i++)jQuery("#dataGrid").jqGrid('addRowData',i+1,mydata[i]);});&/script&我们在浏览器地址栏里填入地址:http://localhost:8080/ssiprj/main.jsp,页面显示如下:呵呵,效果不错啊!下面我将从服务端取数据,然后用main.jsp页面展示出来。修改后的main.jsp文件代码如下:&%@ page language="java" contentType="text/ charset=UTF-8"pageEncoding="UTF-8"%&&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&&html&&head&&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&&title&主页面&/title&&link rel="stylesheet" type="text/css" media="screen" href="themes/overcast/jquery-ui-1.8.16.custom.css"/&&link rel="stylesheet" type="text/css" media="screen" href="themes/ui.jqgrid.css"/&&script src="js/jquery.min.js" type="text/javascript"&&/script&&script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"&&/script&&script src="js/jquery.layout.js" type="text/javascript"&&/script&&script src="js/i18n/grid.locale-en.js" type="text/javascript"&&/script&&script src="js/jquery.jqGrid.min.js" type="text/javascript"&&/script&&script src="js/jquery.tablednd.js" type="text/javascript"&&/script&&script src="js/jquery.contextmenu.js" type="text/javascript"&&/script&&script src="js/ui.multiselect.js" type="text/javascript"&&/script&&/head&&body&&br/&&br/&&table id="dataGrid"&&/table&&div id="pager"&&/div&&/body&&/html&&script type="text/javascript"&jQuery(document).ready(function(){jQuery("#dataGrid").jqGrid({url:'queryProductList.action',datatype: "json",//数据类型 服务端返回的值是json类型height: 250,//高度colNames:['编号','名称', '描述', '创建时间','修改时间','状态'],//列名colModel:[{name:'id',index:'id',align:'right',width:60, sorttype:"int"},{name:'name',index:'name', width:120},{name:'desc',index:'desc', width:130},{name:'create_date',index:'create_date', width:150,sorttype:"date"},{name:'modify_date',index:'modify_date', width:150,sorttype:"date"},{name:'status',index:'status', width:80,sorttype:"int"}],rowNum:10,//默认显示行数rowList:[10,20,50],jsonReader:{root:'results',repeatitems: false},pager: '#pager',//分页multiselect: true,//支持多项选择sortname: 'id',//排序字段sortorder: "desc",//排序方式caption: "jqgrid测试"//列表标题});jQuery("#dataGrid").jqGrid('navGrid','#pager',{edit:false,add:false,del:false});});&/script&我们还要修改下ProductAction.java类下的queryProductList方法,代码如下:public String queryProductList() throws Exception{Map&String, Object& map = new HashMap&String, Object&();// map.put("name", namequery);// JSONObject jsonObject = new JSONObject(jsonQuery);//把查询参数转化为json对象// map.put("name", jsonObject.get("namequery"));results = this.productService.queryProductList(map);flag = "success";msg = "查询操作成功!";welcome = "你的查询操作已经完成!";return SUCCESS;}将我昨天写的json解析代码注释掉,否则会报错。我们在浏览器地址栏里填入地址:http://localhost:8080/ssiprj/main.jsp,页面显示如下图:数据正确显示了,我想有些童鞋对jqgrid的用法不太熟悉吧,接下来我将jqgrid的基本属性做做简单介绍,由于时间有限,想深入了解jqgrid的用法,可以查查baidu。属性说明urljqGrid控件通过这个参数得到需要显示的数据,具体的返回值可以使XML也可以是Json。这个参数用于设定将要得到的数据类型。我最常用的是“json”,其余的类型还包括:xml、xmlstring、local、javascript、 function。mtype定义使用哪种方法发起请求,GET或者POSTheightGrid的高度,可以接受数字、%值、auto,默认值为150。widthGrid的宽度,如果未设置,则宽度应为所有列宽的之和;如果设置了宽度,则每列的宽度将会根据shrinkToFit选项的设置,进行设置。shrinkToFit此选项用于根据width计算每列宽度的算法。默认值为true。如果shrinkToFit为true且设置了width值,则每列宽度会根据 width成比例缩放;如果shrinkToFit为false且设置了width值,则每列的宽度不会成比例缩放,而是保持原有设置,而Grid将会有 水平滚动条。autowidth默认值为false。如果设为true,则Grid的宽度会根据父容器的宽度自动重算。重算仅发生在Grid初始化的阶段;如果当父容器尺寸变化了,同 时也需要变化Grid的尺寸的话,则需要在自己的代码中调用setGridWidth方法来完成。pager定义页码控制条Page Barsortname指定默认的排序列,可以是列名也可以是数字。此参数会在被传递到Server端。viewrecords设置是否在Pager Bar显示所有记录的总数。caption设置Grid表格的标题,如果未设置,则标题区域不显示。captionGrid的标题。如果设置了,则将显示在Grid的Header层。rowNum用于设置Grid中一次显示的行数,默认值为20。正是这个选项将参数rows(prmNames中设置的)通过url选项设置的链接传递到 Server。注意如果Server返回的数据行数超过了rowNum的设定,则Grid也只显示rowNum设定的行数。rowList一个数组,用于设置Grid可以接受的rowNum值。例如[10,20,30]。colNames字符串数组,用于指定各列的题头文本,与列的顺序是对应的。colModel最重要的数组之一,用于设定各列的参数。(稍后详述)prmNames这是一个数组,用于设置jqGrid将要向Server传递的参数名称。(稍后详述)jsonReader这又是一个数组,用来设定如何解析从Server端发回来的json数据。(稍后详述)prmNames是jqGrid的一个重要选项,用于设置jqGrid将要向Server传递的参数名称。其默认值为:prmNames : {page:"page", // 表示请求页码的参数名称rows:"rows", // 表示请求行数的参数名称sort: "sidx", // 表示用于排序的列名的参数名称order: "sord", // 表示采用的排序方式的参数名称search:"_search", // 表示是否是搜索请求的参数名称nd:"nd", // 表示已经发送请求的次数的参数名称id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称oper:"oper", // operation参数名称(我暂时还没用到)editoper:"edit", // 当在edit模式中提交数据时,操作的名称addoper:"add", // 当在add模式中提交数据时,操作的名称deloper:"del", // 当在delete模式中提交数据时,操作的名称subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称npage: null,totalrows:"totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal} jsonReader是jqGrid的一个重要选项,用于设置如何解析从Server端发回来的json数据。其默认值为:jsonReader : {root: "rows", // json中代表实际模型数据的入口page: "page", // json中代表当前页码的数据total: "total", // json中代表页码总数的数据records: "records", // json中代表数据行总数的数据repeatitems: true, // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素(即可以json中元素可以不按顺序);而所使用的name是来自于colModel中的name设定。cell: "cell",id: "id",userdata: "userdata",subgrid: {root:"rows",repeatitems: true,cell:"cell"}} colModel的重要选项name :为Grid中的每个列设置唯一的名称,这是一个必需选项,其中保留字包括subgrid、cb、rn。index :设置排序时所使用的索引名称,这个index名称会作为sidx参数(prmNames中设置的)传递到Server。label :当jqGrid的colNames选项数组为空时,为各列指定题头。如果colNames和此项都为空时,则name选项值会成为题头。width :设置列的宽度,目前只能接受以px为单位的数值,默认为150。sortable :设置该列是否可以排序,默认为true。search :设置该列是否可以被列为搜索条件,默认为true。resizable :设置列是否可以变更尺寸,默认为true。hidden :设置此列初始化时是否为隐藏状态,默认为false。formatter :预设类型或用来格式化该列的自定义函数名。常用预设格式有:integer、date、currency、number等好了,今天内容写完了,框架越来越完善了,我想下一步为main.jsp加一个导航,然后做绘制图表的操作,这个里面我将使用velocity模板语言。今天有博友问我深入分析javascript里对象构建的下篇合适出来,我下一篇博文将这块内容补全。篇二 : LM1875简介及基本应用& & & LM1875是美国国家半导体器件公司生产的音频功放电路,采用V型5 脚单列直插式塑料封装结构。[]如图1所示,该集成电路在&25V电源电压RL=4&O时可获得20W的输出功率,在&30V电源8&O负载获得30W的功率,内置有多种保护电路。广泛应用于汽车立体声收录音机、中功率音响设备,具有体积小、输出功率大、失真小等特点。& & & LM1875功率较TDA2030及TDA2009都为大,电压范围为16~60V。不失真功率为20W(THD=0.08%),THD=1%时,功率可达40W(人耳对THD&10%一下的失真没什么明显的感觉),保护功能完善。图1 LM1875引脚图& & & 电路特点:& & & [1]单列5脚直插塑料封装,仅5只引脚。& & & [2]开环增益可达90dB。& & & [3]极低的失真,1kHz,20W时失真仅为0.015%。& & & [4]AC和DC短路保护电路。[5]超温保护电路。[6]峰值电流高达4A。[7]极宽的工作电压范围(16-60V)。[8]内置输出保护二极管。[9]外接元件非常少,TO-220封装。[10]输出功率大,Po=20W(RL=4&O)。& & & 典型应用电路:图2 LM1875典型应用一图3 LM1875典型应用二& & & LM1875也有单双电源两种接法:图4 LM1875单电源接法图5 LM1875双电源接法扩展:lm1875其他应用 / lm324功能应用简介 / lm1875篇三 : 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用第24卷第5期(2008) 河西学院学报 Vol.24 No.5(2008)eix=cosx+isinx的几种证明及其在高等欧拉公式数学中的应用李 劲(河西学院数学系,甘肃 张掖 734000)摘 要:在复数域上给出欧拉公式 eix=cosx+isinx的几种证明;举例说明欧拉公式在高等数学中的几类应用.关键词:欧拉公式;证明;高等数学;应用;举例中图分类号:O13 文献标识码:A 文章编号:(01-061.欧拉公式的历史渊源及其意义16世纪中叶产生了明确的复数概念.“在18世纪,已有的初等数学包括三角函数、指数函数和对数函数则被推广到了复数领域,这也是受到了积分计算的激发.”这些数学成果,为欧拉公式的产生奠定了基础.1714年,英国数学家科兹(Cotes,Roger,),首先发表了定理[1]=loge(cosφ+φ)(1)日,瑞士数学家欧拉(~1783)在给瑞士数学家约翰·伯努利(John Bernoulli,=2cosx和y=+e1667~1748)的信中说,y 都是同一个微分方程的解,因此它们应该相等.1743年他又发表了这个结果,即+ecoss=sins=,(2)21748年欧拉重新发现了科兹所发现的结果(1)式,它也可以由(2)式导出.[2]i“1777年,欧拉在递交给圣彼得堡科学院的论文《微分公式》中首次使用,但很少有人注意它.直到1801年,德国数学家高斯(Gauss,Carl Friedrich,)系统地使用了这个符号,以后渐渐流行,沿用至今.”由、(2)两式得i=和上述(1)[3]e=cosx+isinx, (x ∈R) (3)这就是著名的欧拉公式.指数函数和三角函数在实数域中几乎没有什么联系,而在复数域中却发现了它们可以相互转化,并被欧拉公式这个非常简单的关系式联系在一起.特别是当 x=π时,欧拉公式便写成了 eiπ+1=0,这个等式将数中最富特色的五个数0,ixi是虚数的基本单位,1,i ,e ,π 绝妙地联系在一起,“1是正整数也是实数的基本单位, 0是唯一的中性数,它们都具有ii来源于代数,π在超越数之中都独具特色.这5独特的地位,最具代表性.可以说, 来源于几何, 与 πe来源于分析,e个看来似乎是互不相干的数,居然如此和谐地统一在一个式子中.”因而,公式 eiπ+1=0成为人们公认的优美公式,[4]被视为数学美的一个象征.这充分地揭示了数学的统一性、简洁性、奇异性等美学特性,了解这些丰富的数学文化内容,对于通过高等数学学习提高大学生的综合素质、提高数学教育的质量具有重要意义.———————————————收稿日期:作者简介:李劲(1957—),男,甘肃临潭人,河西学院数学系副教授,主要从事数学教育教学研究.- 1 -欧拉公式 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用e=cosx+isinx的几种证明及其在高等数学中的应用李劲:欧拉公式2.欧拉公式的证明欧拉公式 eix=cosx+isinx有广泛而重要的应用,但在相关文献中未见到对这个公式比较系统和完整的多种证明.为了进一步挖掘欧拉公式的应用及其数学教育方的重要意义,以下在复数域上给出欧拉公式的几种比较系统的证明.证法一:(复指数函数定义法)ixz=x+iy,x,y∈R)z的因为对任何复数 ( ,复指数函数定义为e =e=e(cosy+isiny).所以,当复数 zx+iyx[5]e=cosy+isiny. (证完)实部 x=0时,就得到欧拉公式 iy证法二:(分离变量积分法)设复数 z=cosx+isinx,(x ∈R),两边对 x求导数,得dzdx=?sinx+icosx=i 2sinx+icosx= i(cosx+isinx)=iz.分离变量并对两边积分,得∫1zdz=∫idx,即 lnz=ix+C.取 x=0得,C =0,故,有ln z=ix,即 eix=cosx+isinx. 证法三:(复数幂级数展开式法)因为ix+∞(ix)n+∞(?1)nx2n+∞(?1)n?1n=0n!,cosx=∑,sinx=n=0(2n)!∑x2n?1e=∑,(x ∈R),n=1(2n?1)!+∞(?1)nx2n+∞(?1)n?1x2n?1+∞cosx+isinx=∑n=0(2n)!n=1(2n?1)!∑(ix)n所以 +i∑==eix.n=0n!证法四:(变上限积分法)y考虑变上限积分∫10t2+1dt.∫yy因为10t2+1dt=arctant=arctany,又因为0yy∫1?111iy0t2+1dt=∫02i(t+i?t?idt=2[ln(t+i)?ln(t?i)]0=i2[ln(y+i)2y2+1?ln(-1)],再设 arctany=θ,由此得 y=tanθ,所以有θ=i2[ln(y+i)2i(tanθ+i)2y2+1?ln(-1)]= 2[lntan2θ+1?ln(-1)]i2[lncos2θ(tanθ+i)2=iln(cos2θ?2isinθcosθ?sin2θ)=i?122ln[(cos(?θ)+isin(?θ))2]= iln[cos(?θ)+isin(?θ)],即 i(?θ)=ln[cos(?θ)+isin(?θ)].令 x=?θ,得 ix=ln(cosx+isinx),即有 eix=cosx+isinx.证法五:(极限法)- 2 -(证完)(证完)(证完)欧拉公式 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用河西学院学报 2008年第5期x=0时,欧拉公式显然成立;当ixnlim(1+,x∈R,n当 ( .∈N)x≠0时,考虑极限n→∞nnt=一方面,令ixixnlim[(1+1)t]ixixlim(1+)=en→∞n→∞t= . (4)nix1+化为三角式,得另一方面,将nxxix))+isin(arctan())],1+nnn由棣莫夫公式得ixnx2nxx(1+)=[1+()2[cos(narctan(+isin(narctan(nnnnnxx22xlimcos(arctan())=x,nlim[1+(]=1limsin(narctan(=x,而,n→∞n→∞n→∞nnn所以有lim(1+=cosx+isinx. (5)n→∞ixnn由(4)、(5)两式得 e=cosx+isinx. (证完)3.欧拉公式在高等数学中的应用欧拉公式在初等数学中有广泛的应用,特别是在三角函数恒等式证明中有十分重要的应用.在高等数学中欧拉公式也有极为广泛的应用,下面举例说明.3.1 计算例1 计算下列各式的值(1)i ;(2)ln( ?1).iix解(1)因为由欧拉公式得 (这说明 i不是虚数)i=(e2)=e2.i=e2,所以 πiπiii?πin=0,±1,±2,") (2)在欧拉公式中,取 ( ,得x=π+2nπ,,e=cos(π+2nπ)+isin(π+2nπ)=?1i(π+2nπ)n=0,±1,±2,")所以 ( .ln(?1)=i(π+2nπ),3.2 求高阶导数xcosα[6]f(x)=ecos(xsinα),其中 f(x).α为常数,求 例2 设g(x)=esin(xsinα),及F解 构造辅助函数 (x)=f(x)+ig(x).则由欧拉公式得xcosα(n)F(x)=e[cos(xsinα)+isin(xsinα)]= ee=e=e,xcosαixsinαx(cosα+isinα)xcosαxeiα于是,F (n)(x)=eeinαxeiα(cosnα =xcosα+isinnα)excosα[cos(xsinα)+isin(xsinα)]e[cos(nα+xsinα)+isin(nα+xsinα)], =- 3 -欧拉公式 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用李劲:欧拉公式 e=cosx+isinx的几种证明及其在高等数学中的应用分离其实部和虚部,即可得所求ixf(x)= ecos(nα+xsinα).3.3 求函数的级数展开式(n)xcosαf(x)=(3cosx?2sinx)的麦克劳林展式.例3求函数解构造辅助函数f1(x)=cosx,f2(x)=sinx,及F(x)=f1(x)+if2(x)=则 F(x)的麦克劳林展式为∞ixe=ei)x.π∞∞i12nnπnπn1nn6F(x)=∑i)x]=+isinx.ex)]=∑∑66n=0n!n=0n!n=0n!分离其实部和虚部得∞2nnnπ2nnnπf1(x)=∑xcosf2(x)=∑xsin,,n!6n!6n=0n=0∞所以2nnπnπf(x)=3f1(x)?2f2(x)=∑?2sin)xn.66n=0n!∞3.4 积分计算ecosβxdx和 esinβxdx,其中 α、β例4 计算 为常数.f1(x)=ecosβxdx, f2(x)=esinβxdx,则有解 设 ∫αx∫αx∫αx∫αxf1(x)+if2(x)= ∫eαx(cosβx+isinβx)dx(α+iβ)x1e(α+iβ)x+Ceedx=edx = = ∫∫α+iβeαx(α?iβ)eiβx+C =22α+βαxiβxeαx[(αcosβx+βsinβx)+i(αsinβx?βcosβx)]+C, =22α+β分离其实部和虚部得eαx(αcosβx+βsinβx)+C1,f1(x)=∫ecosβxdx= α2+β2eαxαx(αsinβx?βcosβx)+C2.f2(x)=∫esinβxdx= α2+β2αx3.5 求三角级数的和函数3nsinnx[7]例6 求三角级数在收敛域(-∞,+∞)上的和函数.∑n!n=0∞3ncosnxs(x).构造在(-∞,+∞)上收敛的三角级数解 设所求为 ,并设其和函数为 t(x). 于是有∑n!n=0∞3nt(x)+is(x)= ∑nx+isinnx)n=0n!∞- 4 -欧拉公式 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用河西学院学报 2008年第5期3nnxi∞1xin3exi=e=e=e3(cosx+isinx)) = ∑∑n=0n!n=0n!∞= .e[cos(3sinx)+isin(3sinx)]3cosx3nsinnx分离其实部和虚部得三角级数在收敛域(-∞,+∞)上的和函数为∑n!n=0∞s(x)=esin(3sinx).3.6 求复数形式的傅立叶级数例6 根据实数形式的傅里叶级数求复数形式的傅立叶级数.[7]3cosxa0∞调区间,则其实数形式的傅里叶级数为+∑(ancosnx+bnsinnx),2n=1其中傅里叶系数为f(x)以2 π,π解 若函数 ]上连续或至多有第一类间断点,且在[-π ,π ]上至多有有限个单π为周期,在[-1π1πa=fxnxdx()cosb=n=0,1,2,… . (6),nn∫?π∫f(x)sinnxdx, ππ?π因为1inx1inx?inx?inxnx=e+ecos()sin(e?e),nx=,22所以有a0∞+∑(ancosnx+bnsinnx)2n=1a0∞1ii1+∑[(an?bn)einx+(an+bn)e?inx], =2n=12222在(6)式中,若以(-n)代替n,则有a?n=an,b ,?n=?bncn=an?bn, n=0,±1,±2,….于是,函数 f(x)的复数形式的傅里叶级数为记12i2∞cne,n=?∞∑inx其中系数计算公式为121πf(x)(cosnx?isinnx)dx =∫?π2π1π?inxfxedx.() =∫?π2πcn=(an?ibn)3.7 求微分方程的通解y?2y′′′+5y′′=0的通解.例7 求微分方程解 原方程的特征方程为(4)[8]- 5 -欧拉公式 欧拉公式e_ix_cosx_isinx的几种证明及其在高等数学中的应用李劲:欧拉公式 e=cosx+isinx的几种证明及其在高等数学中的应用ixλ(λ?2λ+5)=0.λ?2λ+5λ=0,即 43222λ1=λ2=0 ,λ由此可知,该特征方程的特征根为 3、4=1±2i.于是,由欧拉公式及微分方程解的叠加原理得原方程的通解为y=C1+C2x+e(C3cos2x+C4sin2x).4.结束语以上证明和几个方面的实例表明,欧拉公式 e=cosx+isinx可以将高等数学中的许多知识点联系起来,形成知识链.掌握欧拉公式及其广泛应用,对于掌握有关数学思想、增强数学审美意识、提高高等数学的学习质量具有重要意义.有必要对欧拉公式的应用进行更深入的探讨.参考文献[1]李文林.数学史教程[M].北京:高等教育出版社,2000.[2](美)M·克莱因.古今数学思想[M].(第二册).上海:科学技术出版社,1979.[3]杜瑞芝.数学史辞典[M].济南:山东教育出版社,2000.[4]张楚廷.数学文化[M].北京:高等教育出版社,2000.[5]钟玉泉.复变函数论(第三版)[M].北京:高等教育出版社,2004.[6]陈仁政.不可思议的[M].北京:科学出版社,2005.[7]龚成通.高等数学起跑第一步[M].上海:华东理工大学出版社,2004.[8]同济大学数学教研室.高等数学(第四版)[M].北京:高等教育出版社,1996.ixxThe Proof and Application of Ewler's Formula in Higher MathematicsLi Jin(Department of Mathematics,Hexi University,Zhangye,Gansu,734000)e=cosx+isinxAbstract: This paper presents a few proofs of Euler's formula in the field of complex number,and shows several applications of Eulev's formula in higher mathematics.Key words: Euler'PHApplication;Examples[责任编辑:张飞羽]ix下接第(44)页Analysis of Chemical Constituents of Volatile Oil from Artemisia Argyi with Different MethodsXu Xin-Jian Song Hai Xue Guo-qin An Hong-gang Wu Dong-qing(Key Laboratory of Resources and Environment Chemistry of West China,Zhangye Gansu 734000;Department ofChemistry,Hexi University,Zhangye Gansu 734000)Abstract: In order to analyze chemical constituents of the volatile oil form Artemisia argyi Levl.et Vant, the volatile oil was extracted from Artemisia argyi Levl.et Vant. with different methods ,the components of the volatile oil were separated and identified by GC-MS, the relative content of each component was determined by area normalization. The result showed that the oil with stream distillation is different than the solvent-extraction,and.Stream distillation is ideal for extracting the volatile oils,and solvent-extraction is also viable.Key words: Artemisia argyi Levl.et Vant.; V GC-MS[责任编辑:许耀照]- 6 -
上一篇文章:
下一篇文章:
本文标题:[基本不等式及其应用]JQGRID 基本用法及示例、换肤等&版权说明
文章标题: 文章地址:
1、《[基本不等式及其应用]JQGRID 基本用法及示例、换肤等》一文由262阅读网()网友提供,版权归原作者本人所有,转载请注明出处!
2、转载或引用本网内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本网内容原意进行曲解、修改,同时必须保留本网注明的"稿件来源",并自负版权等法律责任。
3、对于不当转载或引用本网内容而引起的民事纷争、行政处理或其他损失,本网不承担责任。

我要回帖

更多关于 麦克劳林公式大全 的文章

 

随机推荐