




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB语言课程论文 用MATLAB解决数值的微分 姓 名:韩玉霞学 号:12010245264专 业:通信工程班 级 :2010级通信(1)班指导老师:汤全武学 院:物理电气信息学院完成日期:2011年12月26日用MATLAB解决数值的微分(姓名:韩玉霞 班级:2010级通信工程)摘要数值微分是在科学研究和工程技术中经常遇到的重要问题.因为它具有广泛的应用背景和由其不适定性(对输入数据的扰动极为敏感)而带来的气节困难,人们倾注了大量精力去探讨和提出数值稳定的求法.一般来说,函数的导数依然是一个函数。设函数f(x)=g(x),高等数学关心的是g(x)的性质和形式,而数值分析关心的问题是怎样计算g(x)在一串离散点X=(x1,x2,x3.xn)的近似值G=(g1,g2,g3.gn)以及计算的近似值有多大误差。有两种方式计算任意函数f(x)在给定点x的数值导数。第一种方式是用多项式或者样条函数g(x)对f(x)进行逼近(插值或者拟合),然后用逼近函数g(x)在点x处的导数作为f(x)在点x处的导数。第二种方式是用f(x)在点x处的某种差商作为其导数。关键字差分 差商 数值微分 导数一、 问题的提出 与积分相反,数值微分非常困难.积分描述了一个函数的整体或宏观性质,而微分则描述了一个函数在一点处的斜率,这是函数的微观性质.因此积分对函数的形状在小范围内的改变不敏感.而微分却很敏感.一个函数小的变化,容易产生相邻点的斜率的大的改变. 由于微分这个固有的困难,所以尽可能避免数值微分,特别是对实验获得的数据进行微分.在这种情况下,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分.或用另一种方法,对该数据进行三次样条拟合,然后寻找样条微分.在MATLAB中,没有直接提供求数值导数的函数,那么我们将以何种途径来解决呢?二、 数值的差分与差商 任意函数f(x)在x点的导数是通过极限定义的,在h都趋近于0的情况下: (1) (2) (3) 上述式子中,均假设h0,如果去掉上述等式右端趋近于0的极限过程,并引进记号: (4) (5) (6)以上三式分别为函数在x点处以h(h0)为步长的向前差分、向后差分和中心差分。当步长h充分小时,有: (7) (8) (9)和差分一样,称以上三式与h的比值分别为函数在x点处以h(h0)为步长向前差商、向后差商和中心差商。当步长h(h0)充分小时,函数f在点x的微分接近于函数在该点的任意差分,而f在点x的导数接近于函数在该点的任一种差商。问题一:生成以向量V=1,2,3,4,5,6为基础的范得蒙矩阵,按列进行差分运算。命令如下: V=vander(1:6) DV=diff(V) %计算V的一阶差分 问题二: 设x由0,2间均匀分布的10个点组成,求sinx的1到3阶差分。命令如下:X=linspace(0,2*pi,10); Y=sin(x);Dy=diff(y); %计算y的一阶差分D2z=diff(y,2); %计算y的二阶差分,也可用命令diff(Dy)计算D3y=diff(y,3); %计算y的三阶差分,也可用diff(D2Y)h或diff(Dy,2)输出结果分别是: X= 0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832 Y=0 0.6428 0.9843 0.8660 0.3420 -0.3420 -0.8660 -0.9848 -0.6428 -0.0000 DY=0.6428 0.3420 -0.1188 -0.5240 -0.6840 -0.5240 -0.1188 0.3420 0.6428 D2Y= -0.3008 -0.4608 -0.4052 -0.1600 0.1600 0.4052 0,4608 0.3008 D3Y= -0.1600 0.0556 0.2452 0.3201 0.2452 0.0556 -0.1600三、数值微分的实现 MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff,其调用格式为:DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,n-1。DX=diff(X,n):计算X的n阶向前差分。例如,diff(X,2)=diff(diff(X)。DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分;dim=2,按行计算差分。diff函数用以演算一函数的微分项,相关的函数语法有下列4个:diff(f) 传回f对预设独立变数的一次微分值diff(f,t) 传回f对独立变数t的一次微分值 diff(f,n) 传回f对预设独立变数的n次微分值diff(f,t,n) 传回f对独立变数t的n次微分值也即matlab求导命令diff调用格式:diff(函数) , 求的一阶导数;diff(函数, n) , 求的n阶导数(n是具体整数);diff(函数,变量名), 求对的偏导数;diff(函数, 变量名,n) ,求对的n阶偏导数;数值微分函数也是用diff,因此这个函数是靠输入的引数决定是以数值或是符号微分,如果引数为向量则执行数值微分,如果引数为符号表示式则执行符号微分。输入方式:(1)求一阶导数 dy=diff(y) 或: dy=diff(y,v)(2)求高阶导数 dy=diff(y,n) 或:dy=diff(y,v,n)注解:y 是被求导的函数, 是符号表达式;2. v 是指定对其求导的自变量, 是符号变量. 若函数表达式中有多个符号变量, 最好应指定 其中某个为对其求导的自变量, 以免出错.3. n 指定求导数的阶数;4. dy 是求导的输出结果, 也是符号表达式.问题三:用不同的方法求函数f(x)的数值导数,并在同一个坐标系中做出f(x)的图像。程序如下:f=inline(sqrt(x.3+2*x.2-x+12)+(x+5).(1/6)+5*x+2);g=inline(3*x.2+4*x-1)./sqrt(x.3+2*x.2-x+12)/2+1/6./(x+5).(5/6)+5);x=-3:0.01:3;p=polyfit(x,f(x),5); %用5次多项式p拟合f(x)dp=polyder(p); %对拟合多项式p求导数dp dpx=polyval(dp,x); %求dp在假设点的函数值dx=diff(f(x,3.01)/0.01; %直接对f(x)求数值导数gx=g(x); %求函数f的导函数g在假设点的导数plot(x,dpx,x,dx,.,x,gx,-); %作图 图1 用不同方法求得的数值导数diff(求导,偏导)(1)对于离散的XY = diff(X) %对x求差分Y = diff(X,n) %对x求n阶差分Y = diff(X,n,dim) %dim=2时对列向量求差分问题 四: 一阶导数syms x;f=cos(x)/(x3+7*x+2);f1d=diff(f,x)pretty(f1d)1. 绘制原函数以及求导后函数曲线 x1=0:0.001:5(f,x,x1); y1d=subs(f1d,x,x1); plot(x1,y,x1,y1d,:); y=subs; 图2 原函数及求导后的曲线当求导的函数比较复杂,或者是求高阶导数时,计算量是很大的。此时可以用MATLAB的diff命令来求导数。问题五: 求的导数。 解 : syms x diff(xsin(x) %调用diff函数 ans= xsin(x)*(cos(x)*log(x)+sin(x)/x)可以用pretty命令来整理一下显示结果,使之更符合一般的书写格式 pretty(ans) 问题 六:求的高阶导数。 解 : syms a x diff(exp(a*x),x,3) ans= a3*exp(a*x) diff(exp(a*x),x,30) ans= a30*exp(a*x)即。问题 七:求导数求函数e(ax)sin(bx)的导数,其中a=-0.5,b=2,画数值导数和符号导数曲线并与解析解进行比较 图3 数值导数的曲线当求导的函数比较复杂,或者是求高阶导数,计算量是很大的。此时可以用MATLAB的diff命令来求导。问题八 求Y=X(sinx)的导数解: syms xDiff(xsin(x) %应用diff命令求导Ans=xsin(x)*(cos(x)*log(x)+sin(x)/x)问题九Y=e(ax)高阶导数解: syms a xDiff(exp(a*x),x,3) %应用diff命令求导ans =a3*exp(a*x) diff(exp(a*x),x,30)ans=a30*exp(a*x)问题十求函数sin x导数解一:diff(2*a*sin(b*x); Y=2*a*sin(b*x);解二:diff(y,x)syms a b x Y=2*a*sin(b*x);运行结果:ans= 2*a*cos(b*x)*b小结:Diff(y,x) 注解:syms是定义符号变量的命令,被定义的多个变量之间用空格隔开。1:求函数导数的命令,一般调用格式: Diff(y,x,n)2:定义符号变量,一般形式: Syms x y a b t3:转变一个符号表达式S的显示形式: Pretty(S)四:结论 从以上利用MATLAB语言对数值微分的分析我们不难的出以下结论:有两种方式计算任意函数的数值导数,第一种方式是用多项式或样条函数g(x)对f(x)进行逼近,然后用逼近函数g(x)在点x处的导数作为f(x)在点x处的导数。第二种方式是用f(x)在点x 处的差商作为其导数。在MATLAB中没有直接提供求数值导数的函数,所以我们只有计算向前差分的函数diff,通过对diff的调用达到对数值函数微分求导的目的。从以上论文我们不难看出MATLAB的作图功能的强大。五:课程体会 经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获,数值的微分仅仅是MATLAB巨大的学科用途的一个小的方面。我深深体会到MATLAB语言相对于同类程序语言更方便更简洁易懂到了MATLAB在各种运算中的巨大用处,以及其在个学科中领域中的应用。尤其它具有功能强,效率高,简单易学等特,这一软件不仅仅局限于统计,上网查询才知道MATLAB 产品族可以用来进行以下各种工作: 数值分析 数值和符号计算 工程与科学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自考专业(计算机应用)能力检测试卷及参考答案详解(典型题)
- 年产420万件地毯卡扣项目可行性研究报告
- 主管护师(中级)练习题及答案详解(网校专用)
- 自考专业(汉语言文学)模考模拟试题带答案详解(研优卷)
- 房地产行业VR看房与销售管理系统方案
- 中医助理医师模拟题库及完整答案详解(易错题)
- 重难点解析安徽无为县襄安中学7年级下册数学期末考试章节测试试题(含详细解析)
- 电竞公司书法比赛管理办法
- 自考专业(金融)每日一练试卷及答案详解(基础+提升)
- 重难点解析鲁教版(五四制)8年级数学下册试题含答案详解(综合卷)
- 京东集团员工手册-京东
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 初中语文学习方法指导
- 2023年苏州市星海实验中学小升初分班考试数学模拟试卷及答案解析
- GB/T 23483-2009建筑物围护结构传热系数及采暖供热量检测方法
- GB/T 22237-2008表面活性剂表面张力的测定
- 股指期权风险管理
- 《电业安全工作规程》
- 发证机关所在地区代码表
- 过去分词公开课--完整版PPT课件
- 书法的章法布局(完整版)
评论
0/150
提交评论