Matlab之函数零点

Matlab中求函数零点的函数是fzero(一元函数),fsolve(二元函数),roots(一元多项式)等:

fzero:

fzero可以求任何一元函数的零点:

求函数

的零点:

x=-3:0.1:4;

y=x.^2.*sin(x)-x+1;

plot(x, y, 'r'); %绘出图形

grid on %显示网格

line([-3, 4], [0, 0]); %绘制x轴((-3,0)到(4,0)的一条直线)

title('fzero example');

xlabel('x');

ylabel('f(x)');

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的函数值

roots:

roots可以求一元多项式函数(诸如

的形式)的所有零点:

求函数

的零点:

o=roots([1 0 -2 -5]);

输出三个零点,包括两个复数

注意:o=roots(m)中m表示该多项式的各阶系数(阶数从大到小排列),输出的o是一个一维列向量,表示求出的所有零点(包括复数)

fsolve:

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

求方程组

的零点(从[-5, -5]处开始搜寻)(fsolve采用迭代法求零点,因此需要设定一个初始值):

首先我们要把上面的每个方程化为

的形式,然后输入:

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:

f(y)

输出:

1.0e-006 *

-0.4059

-0.4059

可见y=[x1, x2]的确非常接近零点

matlab函数零点求法,Matlab之函数零点 | 学步园相关推荐

  1. matlab与c/c++混合...,matlab与c/c++ 混合编程之 MCR | 学步园

    什么是MCR? MCR之前是 matlab component runtime的缩写,后更名为 matlab compiler runtime.MCR实际上是一组独立的共享库,也即是常说的动态连接库, ...

  2. matlab群延时函数,群延迟函数(group delay function)群延迟滤波器 | 学步园

    最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digital filters,对这个方面的知识好像还挺有用的,所 ...

  3. matlab输出高质量图片,Matlab 画平滑轮廓 print 高质量 figure | 学步园

    Matlab 画平滑轮廓 print 高质量 figure 在matlab中,想将分割的结果以轮廓的形式显示到灰度图上,要提取.绘制平滑轮廓. 自己提取轮廓.绘制,不方便,效果差. matlab提供了 ...

  4. matlab频域积分,matlab数值积分实现(时域频域积分) | 学步园

    最近做有关加速度的数据处理,需要把加速度积分成位移,网上找了找相关资料,发现做这个并不多,把最近做的总结一下吧! 积分操作主要有两种方法:时域积分和频域积分,积分中常见的问题就是会产生二次趋势.关于积 ...

  5. matlab正弦函数fft,正弦函数及其FFT变换(一) | 学步园

    在MATLAB中想要画一个sin函数是很容易的,比如:首先定义t = 0:0.01:10,然后画出y = sin(2*pi*t)就可以了,最多再加相角啊之类的参数,但如果在C语言中应该如何自己制造一个 ...

  6. oracle 截取小数点_oracle函数(关于处理小数点位数和时间) | 学步园

    一:处理数字 1. 取四舍五入的几位小数 eg: round(n+0.{m个0}5, m) 比如, 取两位的话: round(15.333 + 0.005, 2) result:15.34 比如:se ...

  7. matlab 摄氏度符号怎么打,MATLAB中如何打角标和希腊字母 | 学步园

    声明:这是转载 很多时候都要在matlab画图的时候添加一些公式符号之类的,有一些特殊的字符并不能直接从键盘上输入,比如希腊字母等等.但是有想用,因为这样使图看起来漂亮而且容易理解. 例如:我想输入摄 ...

  8. matlab设l创建网络,利用matlab进行简单的贝叶斯网络构建 | 学步园

    matlab的安装 第一次装matlab,装好后发现没有在桌面生成图标,还以为是最后提示的编译器没有安装.结果发现,matlab的图标在其安装的bin目录下面,进行初始化就能开始使用了 关于贝叶斯网络 ...

  9. matlab gui uiwaitbar,MATLAB GUI嵌入进度条(waitBar) | 学步园

    基本就是参考:http://www.ilovematlab.cn/thread-61732-1-1.html,改了点点方便用 function mywaitbar(x,num,varargin) if ...

  10. o_rdonly_O_RDWR, O_CREAT等open函数标志位在哪里定义? | 学步园

    查了下O_RDWR, O_CREAT等定义,终于找到了. 我的系统是Fedora12, 其定义在文件:/usr/include/asm-generic/fcntl.h,部分定义如下: #include ...

最新文章

  1. Linux_学习_01_常用命令大全
  2. Swift - 简单的原生与网页交互
  3. HTML5 虚拟键盘出现挡住输入框的解决办法
  4. Keras tensorflow Resnet模型
  5. PyTorch 1.10正式版上线了!附相关资源
  6. Spark精华问答 | Spark 会替代Hadoop 吗?
  7. 百度地图之添加控件——比例尺、缩略图、平移缩放
  8. 完美解析Opendrive地图格式数据
  9. 华为云学习笔记(二)
  10. composer 进行tp6的安装
  11. RGB转HDMI模块解决方案
  12. 第六讲:AD、DA的工作原理及实现(郭天祥)
  13. 如何利用Python实现自动打卡签到
  14. 目标识别与跟踪算法matlab_极市直播| 朱政:基于孪生网络结构的SiamRPN系列目标跟踪算法...
  15. 萌新的linux之旅27
  16. 膜拜,阿里内部都在学习的五大深入理解Java虚拟机PDF,简直强无敌
  17. NFT/Web3/区块链项目孵化包装策划,到底该自建运营还是专业外包孵化?
  18. Java 爬取微信公众号文章(文字 + 图片)
  19. 信锐交换机配置_信锐无线AC,响应网监规定,助力连接安全
  20. 真牛皮!手把手教你写Android项目文档,内含福利

热门文章

  1. matlab 动态面板数据分析,MATLAB空间面板数据模型操作简介 空间面板数据模型
  2. 防火墙 firewall 及端口查看
  3. matlab2009a下载 win7,MATLAB R2009a完美安装及下载
  4. win7win8 64位汇编开发环境合集安装与设置
  5. Python实现QQ游戏连连看外挂秒杀
  6. python读音有道-[Python]通过有道词典API获取单词发音MP3
  7. Linux下的C语言编程教程-Chinaitlab制作
  8. 计算机图形图像处理应用教程,计算机图形图像处理——Photoshop实用教程
  9. new pad不能用usb充电的解决方法
  10. Spring IOC源码分析