




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件应用 主讲:李强 Email: 数学与信息科学学院,1.3 MATLAB中函数的数值运算,MATLAB除了可以进行简单的数值运算外,还可以由用户自定义函数建立一元或多元数值函数。通过建立函数,可以求解相关的各种问题,如求函数的值、零点、极值、积分等。 1.3.1 数值函数的建立 MATLAB建立数值函数通常有两种方式:一种使用inline命令;另一种是通过编写函数程序,用function来定义函数。,1.3.1 数值函数的建立,使用inline命令 Inline 内联的 INLINE Construct INLINE object. INLINE(EXPR) constructs an inline function object from the MATLAB expression contained in the string EXPR. The input arguments are automatically determined by searching EXPR for variable names (see SYMVAR). If no variable exists, x is used.,INLINE(EXPR, ARG1, ARG2, .) constructs an inline function whose input arguments are specified by the strings ARG1, ARG2, . Multicharacter symbol names may be used. INLINE(EXPR, N), where N is a scalar, constructs an inline function whose input arguments are x, P1, P2, ., PN.,Examples: g = inline(t2) g = inline(sin(2*pi*f + theta) g = inline(sin(2*pi*f + theta), f, theta) g = inline(xP1, 1) See also SYMVAR.,例如: f=inline(x.2-3) %建立一元函数f(x)=x2-3 g=inline(x.y-3, x, y) %建立二元函数f(x)=xy-3 g=inline(x.y-3, y, x) %建立二元函数f(x)=xy-3 注意g(x,y)与h(y,x)的区别,如g(2,3)=5, h(2,3)=6,为什么?,使用function创建M函数(实验3将详细介绍) 编写程序建立一个M函数是MATLAB的一种常用方式。 例如在编辑窗口驶入如下程序: function y=f1(x) %声明建立一个名为f1的函数; y=x.2-3; %建立函数f(x)=x2-3,x可以为向量,用文件名f1(函数名)保存程序,生成f1.m文件即为建立的函数。 M-函数必须由function语句引导,具体格式为: function 输出变量列表=函数名(输入变量列表) 例1-12 建立同时计算y1=(a+b)n, y2=(a-b)n的函数,即任给a、b、n三个数,返回y1、y2。 在编辑窗口中输入如下程序:,例1-12 建立同时计算y1=(a+b)n, y2=(a-b)n的函数,即任给a、b、n三个数,返回y1、y2。 在编辑窗口中输入如下程序: function y1,y2=fun1(a,b,n) y1=(a+b).n; y2=(a-b).n; 输入完成后用函数名fun1作为文件名存盘,形成一个函数文件:fun1.m,可以进行调用。,1.3.2 数值函数的运算 当一个数值函数通过上述方法,由inline或function建立以后,就可以用于求解相关的各种问题,如求函数值,函数的零点、极值、积分等。 1. 求函数值 当自变量为给定的值或向量时,函数返回相应的函数值或函数值向量。 例如:对于上一节建立的函数f(x)、g(x,y)、h(y,x)、f1(x)和fun1(a,b,n)有如下结果:,例如:对于上一节建立的函数f(x)、g(x,y)、h(y,x)、f1(x)和fun1(a,b,n)有如下结果: f=inline(x.2-3) %建立一元函数f(x)=x2-3 f = Inline function: f(x) = x.2-3 f(2) ans =1, g=inline(x.y-3, x, y) %建立二元函数f(x)=xy-3 g = Inline function: g(x,y) = x.y-3 g(2,3) ans = 5, Y=f1(2) Y = 1 f(1 2 3) ans = -2 1 6, y1,y2=fun1(1,2,3) %此处不能写为y1,y2=fun1(1 2 3) y1 = 27 y2 = -1 请用实验验证以上结果,并总结数值函数的定义与用法。,2. 数值函数的图形 x=0:0.01:2; %生成自变量; y=1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6; %生成函数y,注意点运算 plot(x,y,linewidth,2) %画函数曲线,grid %加坐标网格,另一方面,可以通过建立数值函数,运用MATLAB的fplot命令来实现,其格式: fplot(f,a,b) 上述图形也可以用下述命令来完成。 f=inline(1./(x-0.3).2+0.01)+1./(x- 0.9).2+0.04)-6) % 生成数值函数f(x) fplot(f,0,2) % 画函数f在0,2上的曲线,3. 数值函数的零点 当一个函数f(x)与x轴相交时,交点(又称为零点)是方程f(x)=0的一个实根。如何求函数的零点,MATLAB提供了一个重要命令fzero。其使用方法有两种: (help fzero 出来很多!) 求函数f(x)在x0附近的零点c,格式: c=fzero(f, x0 ),求函数f(x)在区间a,b附近的零点c,格式: c=fzero(f, a,b) 这里要求函数在区间两端点处的函数值要异号。,例如,对于例题1-13中所定义的f(x),求其零点c。 f= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ; c=fzero(f, 0,2) %求函数f在0,2上的零点c,要求f(0)f(2)0 c = 1.2995,fzero(f,1) %求函数f在x=1附近的零点 fzero(f,1) %求函数f在x=1附近的零点 ans = 1.2995,4. 数值函数的最小(大)值 求一元函数或多元函数的最小(大)值是数学上经常遇到的问题,如何求解最小(大)值,MATLAB提供了相应的命令fminbnd(一元函数最小值)和fminsearch(多元函数最小值)。 求一元函数f(x)在区间a,b上的最小值点x及最小值y,格式为 x,y=fminbnd(f,a,b),求多元函数f(X)在点X0附近的最小值点X及最小值y,格式为 X,y=fminbnd(f,a,b) 这里X、X0均为向量。 对于例题1-13中所定义函数的f(x),求其在区间0.2,0.8上的最小值。 fy= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ; xmin,fmin=fminbnd(fy,0.2,0.8) %函数fy在0.2,0.8上最小值点及最小值 xmin = 0.6370,fmin =11.2528,如何求解函数fy在0.2,0.8上的最大值点及最大值呢? 事实上,函数fy在0.2,0.8上的最大值就是-fy在0.2,0.8上的最小值。 ff= inline(-1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ; %函数ff=-fy x, y=fminbnd(ff,0.2,0.8); %函数ff在0.2,0.8上最小值点及最小值 xmax=x fmax=-y,xmax = 0.2996 fmax = 103.5014,5. 数值函数的积分 求一元函数定积分或多元函数重积分的近似值,MATLAB提供了有关命令quad(定积分)、dblquad(二重积分)和triplequad(三重积分)。他们的使用方法如下: Quad(四方院子;四胞胎之一;嵌条;成套的四件东西) 求一元函数f(x)在区间a,b上的定积分(近似计算),格式为 低阶方法:quad(f,a,b) 高阶方法:quadl(f,a,b),求二元函数f(x,y)在长方形区域a,bc,d上的二重积分,格式为 dblquad(f,a,b,c,d) 求三元函数f(x,y,z)在长方体区域a,bc,d e,f上的三重积分,格式为 triplequad(f,a,b,c,d,e,f),例如,求例题1-13所定义f(x)在0,1上的定积分 f= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ; I=quad(f,0,1) %求f(x)在0,1上的定积分 I = 29.8583,g=inline(x*y,x,y); % 建立二元函数g(x,y)=xy I=dblquad(g,0,1,1,2) %求g(x,y)在0,11,2上的二重积分 I = 0.7500,h=inline(x.*exp(y)+z.2,x,y,z); % 建立三元函数; I=triplequad(h,0,1,0,1,0,1) %求h(x,y,z)在0,10,1 0,1上的三重积分 I = 1.1925,另外,对于定积分,如果已知积分区间a,b的一个划分向量X=x1,x2,xn,以及被积函数y在对应划分点处的函数值向量Y=y1,y2,yn(函数表达式未必知道),那么可以用梯形近似计算方法计算定积分,MATLAB提供了命令trapz。 格式为:trapz(X,Y),应用举例,例1-15,当s=5 f=inline(1/4*x4-5/3*x3+3*x2+5*x-5); %建立函数x=fzero(f,0,5) %求解方程f(x)=0在0,5上的根 x = 0.7762,同理可求出s=10 时, f=inline(1/4*x4-5/3*x3+3*x2+5*x-10); %建立函数x=fzero(f,0,10) %求解方程f(x)=0在0,10上的根 x = 1.5179,例1-16 利用MATLAB命令求解无理数的近似值。 用函数零点命令fzero求无理数e的近似值; 用定积分计算命令(trapz、quad、quadl)求无理数ln2的近似值。 无理数e可以看成是方程lnx-1=0在x=2附近的实根,于是可以用fzero来求解。 f=inline(log(x)-1); %建立函数f(x)=lnx-1 x0=fzero(f,2); %求解方程f(x)=0在x=2附近的根 x0 = 2.7183,e=vpa(x0,10) %显示x0小数点后10位? e = 2.718281828 注: x0=fzero(f,2); 可改为x0=fzero(f,3); 结果不变,用梯形法(trapz)近似计算 X=0:0.01:1; %产生0,1区间上的划分向量; Y=1./(1+X); %求对应的分点处的函数值向量 a=trapz(X,Y); %求用梯形法求出积分近似值 ln2=vpa(a,10) %显示a小数点后10位 ln2 = .6931534305,1.4 MATLAB中的符号运算,MATLAB除了可以进行数值运算外,还可以进行有关符号运算,如函数的求极限、求导、不定积分、Taylor展开与级数求和等符号运算。 在进行符号运算时,首先要定义符号变量,建立符号函数。,1.4.1 符号函数表示,建立符号函数通常有两种方式: 1. 首先用syms命令声明符号变量,再建立符号函数表达式。格式如下: syms x y n %声明x y n均为符号变量; z=x2+sin(x*yn) %建立符号函数z=x2+sin(xyn),2. 直接用sym命令定义符号函数,格式如下 f=sym(x2+cos(x*yn) 函数建立后就可以对函数求极限、导数、微分、积分等运算。,1.4.2 符号函数的求值 符号函数建立之后,就确立了相应的函数符号表达式,它和数值函数不同,不能直接计算函数值。 如: f=sym(0.5-x*y2) f = 0.5-x*y2,那么,要想计算当x=2,y=3时f的值,就需要使用MATLAB的符号函数与数值函数的转换命令eval来计算,其格式如下: x=2; y=3; a=eval(f) a =-17.5000,1.4.3 符号函数运算 在对已经建立的符号函数进行运算时,若符号函数中只有一个符号变量时,通常默认为函数的自变量,否则对于多个变量时,通常要指明相应的自变量,再对该变量进行运算。 极限运算(limit命令),输入命令为: syms x %声明符号变量 fx=1/(1+exp(-1/x); %建立符号函数fx limit(fx,x,1) %求fx:的极限 ans = 1/(1+exp(-1),limit(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 反映护士资格证考试需要试题及答案
- 激光设备的经济性分析试题及答案
- 安徒生童话心得体会
- 安徒生童话打火匣读后感50字
- 心理咨询师考试中的自我调适试题及答案
- 系统规划与管理师考试中时间管理与任务安排的科学性分析试题及答案
- 税务师考试常见难点解析试题及答案
- 网络规划设计师考试知识点的加深与扩展试题及答案
- 电梯维保考试题及答案
- 药剂学知识更新试题及答案
- 高中英语外研版必修第二册Unit 3 Period 6 Writing-Writing a sports story
- 高职旅游专业《旅行社经营管理》说课稿
- DB65-T 4785-2024 耕地质量等级调查评价技术规范
- 心血管麻醉思考与实践读书随笔
- 2024年个人廉洁自律述职报告(三篇)
- 小学家长会-做好孩子手机管理主题班会课件
- 2023年桂林市临桂区增设特岗教师招聘笔试环节的考试真题
- 作家雨果课件
- HYT 191-2015 海水冷却水中铁的测定(正式版)
- 煤矿职工应知应会知识考试题库(含答案)
- 人教版九年级化学下册实验题专项训练含答案
评论
0/150
提交评论