版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab软件与基础数学实验,西安交通大学理学院 易 媛,Matlab中函数的建立,数值函数的建立,MATLAB建立数值函数通常有两种方式: 一是使用inline命令;另一种是通过编写 函数程序,用function来定义函数。,1、 使用inline命令,searching EXPR for variable names (see SYMVAR). If no variable exists, x is used., help inline, INLINE Construct INLINE object.,INLINE(EXPR) constructs an inline function
2、object from the MATLAB expression,contained in the string EXPR. The input arguments are automatically determined,例如:, f = inline(x.2-3) %建立一元函数, g = inline(x.y-3, x,y) %建立二元函数, h = inline(x.y-3, y,x) %建立二元函数,注意函数g=g(x,y)与h=h(y,x)的区别。,2 、使用function定义M-函数,在编辑窗口中,编写程序建立一个M-函数是 MATLAB的一种常用方式。,例如:, funct
3、ion y=f1(x) %声明建立一个名为f1的函数, % This is a test function, named by F1. %对函数的解释,用于help在线帮助, y=x.2-3;,%建立函数,,x可以为向量,function 输出变量列表 =函数名(输入变量列表),建立M-函数是由function语句引导,具体格式为:,例1: 建立同时计算,,,的函数。,即任给a,b,n三个数,返回y1,y2., function y1 , y2=fun1(a , b , n), % fun1 is a function used by DEMO y1=(a+b)n, y2=(a-b)n, %
4、Copyright by XJTU, y1=(a+b).n ;, y2=(a-b).n;,编写完成后用函数名(fun1)作为文件名存盘, 从而形成 一个函数文件fun1.m可以进行调用。,数值函数的运算,当一个数值函数通过上述方法,由inline或function 建立以后,就可以用于求解相关的各种问题,如求函数值, 函数的零点、极值、积分等。,1、 求函数值,当自变量为给定的值或向量时,函数返回相应的函数值 或函数值向量。,例2:, f = inline(x.2-3), f(2), ans = 1, g = inline(x.y-3, x,y), g(2,3), ans = 5, y = 6
5、4 -8, f(1,2,3), ans = -2 1 6,y=fun1(1,3,3),2 数值函数的图形,例2: 设,,,试画出在0,2上的曲线段。, grid, x=0 : 0.01 : 2;,%生成自变量数组, y=1 ./ (x-0.3) .2+0.01)+1 ./ (x-0.9) .2+0.04)-6;,%函数值数组,注意点运算, plot(x,y,linewidth,2);,%画函数曲线,%加坐标网格,结果为画函数f(x)在区间a,b上的曲线。,另一方面,可以通过建立数值函数,运用MATLAB的 fplot命令来实现。其格式:,fplot(f,a,b),图形结果同上述图, f=inl
6、ine( 1 ./ (x-0.3) .2+0.01)+1 ./ (x-0.9) .2+0.04)-6 );,%生成数值函数f(x), fplot(f,0,2) ; % 画函数f在0,2上的曲线, grid % 加坐标网格,3、 数值函数的零点,这里要求函数在区间两端点处函数值要异号。,当一个函数f(x)与x轴相交时,交点(又称为函数的零点)是方程f(x)=0的一个实根。如何求函数的零点,MATLAB提供了一个重要命令fzero。其使用方法有两种:,求函数f(x)在x0附近的零点c,格式:,c=fzero(f , x0),求函数f(x)在区间a,b内的零点c,格式:,c=fzero(f , a,
7、b),对于例题2中所定义的f(x),求其零点c.,例如:, f=inline( 1 ./ (x-0.3) .2+0.01)+1 ./ (x-0.9) .2+0.04)-6 );,%生成数值函数f(x), c= 1.2995, c=fzero(f , 0,2);,% 求函数f在0,2上的零点c,此处要求f(0)f(2)0, ans = 1.2995, fzero(f , 1) % 求函数f在x=1附近的零点,4 、 求函数最小(大)值,求一元或多元函数的最小(大)值是数学上经常 遇到的问题。如何求解最小(大)值,MATLAB提供了 相应的命令fminbnd(一元函数最小值)和fminsearch
8、 (多元函数最小值)。,求一元函数f(x)在区间a,b上的最小值点x及最小值y, 格式为,x,y=fminbnd(f,a,b),求多元函数f(X)在点X0附近的最小值点X及最小值y, 格式为,X,y=fminsearch(f,X0),这里X,X0均为向量。,对于例题1-13中所定义函数的fy(x),求其在区间0.2,0.8上的最小值。,例如:求一元函数最小值(fminbnd命令), xmin = 0.6370 fmim = 11.2528, fy=inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6);, xmin,fmim=fminbnd(fy,0.2
9、,0.8),%函数fy在0.2,0.8上最小值点及最小值,如何求解函数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, xmax = 0.3004, fmax=-y, fmax = 96.5014,5 、 数值函数的积分,求一元函数定积分和多元函数重积分的近似值, MATLAB提供
10、了有关的命令quad(定积分)、dblquad (二重积分)和triplequad(三重积分)。它们的使 用方法如下:,求一元函数f(x)在区间a,b上的定积分(近似计算),格式为:,低阶方法: quad(f,a,b),高阶方法: quad8(f,a,b),求二元函数f(x,y)在长方形区域a,bc,d上的二重积分, 格式为:,dblquad(f,a,b,c,d),triplequad(f,a,b,c,d,e,f),求三元函数f(x,y,z)在长方体区域a,bc,d e,f上的 三重积分,格式为:,例如:求例题2中所定义f(x)在0,1上的定积分,., f=inline(1./(x-0.3).
11、2+0.01)+1./(x-0.9).2+0.04)-6);, I=quad(f,0,1) % 求f(x)在0,1上定积分, I = 29.8583,例3: 求二重积分,及三重积分,。, g=inline(x.*y, x,y); % 建立二元函数g(x,y)=xy, I=dblquad(g,0,1,1,2) % 求g(x,y)在0,1 1,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,1 0,1 0,1上的三重积分, I = 1.1
12、925,另外,对于定积分,如果已知积分区间a,b的一个划 分向量X=x1,x2,xn以及被积函数y在对应划分点处的函数 值向量Y=y1,y2,yn(函数表达式未必知道),那么可以 用梯形近似计算方法计算定积分,MATLAB提供了命令trapz,,trapz(X,Y),格式为:,例4、 已知,,,=,因此,求解x即为求解方程,.,设该曲线在区间0,x上所围,曲边梯形面积为s,试求当s分别为5,10时的x的值。,分析:由于s=,(1)、 对于s=5, f=inline(1/4*x4-5/3*x3+3*x2+5*x-5) ;,%建立函数, x0=fzero(f,0,5),%求解方程,在0,5上的根,
13、 x0 =0.7762, x0=fzero(g,0,10) %求解方程,在0,10上的根,(2)、 对于s=10,g=inline(1/4*x4-5/3*x3+3*x2+5*x-10);, x0 =1.5179,例5、(1)用求函数零点命令(fzero)求无理数,(2) 用定积分计算命令(trapz,quad,quadl)求无理数,的近似值。,=0.6931471806),(e =2.7182818284,,的近似值;,(1) 无理数,可以看成是方程,在x=2附近的实根,,于是可以用fzero来求解。, f=inline(log(x)-1) ; %建立函数, x0=fzero(f,2); %求
14、解方程,在x=2附近的根, e =2.7182818284, e =vpa(x0,10) %显示x0小数点后10位,(2) 由于无理数,,于是可以用,trapz,quad,quadl命令分别来求解。,用梯形法(trapz)近似计算, X=0:0.01:1; %产生0,1区间上的划分向量 Y=1./(1+X); %求对应的分点处的函数值向量 a=trapz(X,Y); %求用梯形法求出积分近似值 ln2 =vpa(a,10) %显示a小数点后10位 ln2 =0.6931534305 (注意:已精确到小数点后4位),用高阶方法(quad,quadl)近似计算, f=inline(1./(1+x); %建立被积函数f(x) a=quad(f,0,1); %用辛浦生方法求f在0,1上的积分近似值 ln2 =vpa(a,10) %显示a小数点后10位 ln2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光明新区企业安全培训课件
- 光学全息技术
- 内勤编制考试题目及答案
- 煤矿爆破考试题及答案
- 洛阳十一中入学考试题及答案
- 历年邮政考试试题及答案
- 佳木斯食品安全教育培训课件
- 余杭区安全生产教育培训课件
- 2024-2025学年山东省淄博市临淄区八年级下学期期末英语试题(含答案解析)
- 二建市政考试题真题及答案
- 城建档案规范化管理流程与操作指南
- 保安员冬季安全知识培训课件
- 智慧园区项目合作协议书
- 遗体火化师招聘考核试卷及答案
- 2025年大学消防指挥专业题库- 火灾现场搜救与救援
- 2024-2025学年山东省聊城市临清市七年级(上)期末数学试卷(含答案)
- 苏州大学《高等数学A 2》2023 - 2024学年期末试卷
- 2025年政府采购评标专家库测评真题5套含答案
- 电解铝安全环保知识培训课件
- 线性代数期末考试试题及答案
- 蒸汽管道工程分部分项划分方案
评论
0/150
提交评论