振动论坛---MATLAB

http://vib.hit.edu.cn/vibbbs/index.asp

http://vib.hit.edu.cn/vibbbs/dispbbs.asp?BoardID=35&replyID=732&id=732&skin=0

符号运算



许多Matlab函数(特别是数值计算方面的)可以函数句柄(function handle)或内联对象(inline object)作为参数。我们以quad函数为例,这个函数使用Simpson算法求函数的数值积分。它的一种调用形式是:

quad(fun, a, b)

其中,fun可以是指向被积函数的函数句柄,或者含有被积函数的内联对象;a和b分别是被积区间的上、下限。考虑以下积分:

使用函数句柄的方法:

% 将下面到"% EOF"的代码保存为f.m

function y = f(x)

y = sin(x) ./ x;

% EOF

quad(@f, 1, 2)



ans =



    0.6593

使用内联对象的方法:

quad( inline(  'sin(x)./x'  )), 1, 2  )



ans =



    0.6593

由于使用内联对象不需要另外建立m文件,所以比较方便,建议使用这种方法。



更加常见的应用是被积函数有不确定的参数,例如:

其中参数a,b,K运行时确定,这时,使用函数句柄将显得很麻烦,可以用以下的方法:

a = rand;

b = rand + 1;

K = rand;

y = subs('sin(K*x)/x', 'K', sym(K, 'd') )

quad( inline(vectorize(char(y))), a, b)



y =

 

sin(.79193703742703536185842949635116*x)/x

 



ans =



    0.8188

当然,由于a,b,K是随机数,结果是不确定的。

出自:MATLAB使用技巧 http://vib.hit.edu.cn/vibbbs/dispbbs.asp?boardID=35&ID=1464

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值