返回介绍

函数的函数

发布于 2019-08-26 14:10:42 字数 1304 浏览 961 评论 0 收藏 0

一种以标量变量的非线性函数为变量的函数称为“函数的函数”,即以函数名为自变量的函数。这类函数包括:

  • 求零点
  • 最优化
  • 求积分
  • 常微分方程

MATLAB通过M文件的函数表示该非线性函数。例如,下面是一个简化的humps函数,来源于matlab/demos路径。

    function y = humps(x)
    y = 1./((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) - 6;
    

在区间0 x 1求此函数的值

    x = 0:.002:1;
    y = humps(x);
    

然后作出图象

    plot(x,y)
    

以上图象表明函数在x=0.6附近有局部最小值。用函数fminsearch可以求出局 部最小值,以及此时x的值。函数fminsearch第一个参数是(需要求出局部最小值的函数的)函数句柄,第二个是参数此时x的近似值。

    p = fminsearch(@humps,.5)
    p =
        0.6370
    

要求出此局部最小值,则

    humps(p)
    
    ans =
       11.2528
    

数值分析家用求积分或积分法来区分定积分的近似值和常微分方程的数值积分。MATLAB的积分程序是quadquadl。语句

    Q = quadl(@humps,0,1)
    

计算图象曲线下方的面积得

    Q =
       29.8583
    

最后,图象说明函数在这区间无零点。故若用下面语句找零点

    z = fzero(@humps,.5)
    

只能找到区间外的零点。

    z =
       -0.1316
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文