加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab 求函数零点

(2013-09-25 18:42:34)
标签:

matlab

零点

fzero

fsolve

教育

分类: 科研
f=@(x)(x.^2.*sin(x)-x+1);
[m, n]=fzero(f,-2);          %在x=-2附近求函数零点,m是零点的x坐标,n是零点的y坐标(注意:Matlab默认求出的是弧度值!)

注意:[m, n] = fzero(funHandle, x0)表示在x0附近求funHandle函数句柄的零点,返回的m是求出的零点的x坐标,n是求出的零点的y坐标。其中函数句柄可以用下面的两种方法表示:

1. 

一元函数:

f=@(x)(...)

如:f=@(x)(2*x.^2+5*x-15)

二元函数:

f=@(x, y)(...)

如:f=@(x, y)(sin(x.^2+y.^2))

2. 

一元函数:

f=inline('f(x)', 'x')           其中f(x)是函数表达式,x是该函数表达式中的自变量

如:f=inline('2*x.^2+5*x-15', 'x')

 

二元函数:

f=inline('f(x)', 'x', 'y')     其中f(x)是函数表达式,x,y是该函数表达式中的自变量

 

如:f=inline('sin(x.^2+y.^2)', 'x', 'y')

注意:定义好函数句柄后就可以按下面的方法使用:f(10)表示求x=10的函数值


 

fsolve可以求出二元函数的零点:

求方程组http://hi.csdn.net/attachment/201202/12/0_1329018364196x.gif求函数零点" />的零点(从[-5, -5]处开始搜寻)(fsolve采用迭代法求零点,因此需要设定一个初始值):

首先我们要把上面的每个方程化为http://hi.csdn.net/attachment/201202/12/0_1329055162U3ck.gif求函数零点" />的形式,然后输入:

f=@(x)([2*x(1)-x(2)-exp(-x(1)); -x(1)+2*x(2)-exp(-x(2))]); 

y=fsolve(f,[-5 -5]);


y=[0.5671 0.5671]


f(y)


1.0e-006 *

-0.4059

-0.4059


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有