matlab 积分 例子,[Matlab]使用arrayfun对矩阵表达式积分的例子

最近学习了matlab中arrayfun函数的使用,可以进行“任意资料型别上的向量化运算”,对关于这方面的资料比较少,最早的中文资料见于一台湾论坛上对的翻译,后来在simwe、振动论坛上见到有过讨论。于是想把以前用循环才能完成的积分试着用arrayfun来完成。

模型为:

[X,Y]=meshgrid(xx,yy);

M=exp(-u*arfa^2)*exp(i*u*pi*a^2/x*1e-14*7)*besselj(0,u^0.5*2*a*pi*sin(y)/x*6);

对表达式中的u进行积分,其中的x、y要用网格数据X、Y来替代,以前只能用循环来完成,现在做适当变换处理,即可用arrayfun来完成。

[适量化矩阵表达式积分运算程序,by: ncforest.blog.163.com]

clear all;

syms x y u;

arfa=1.07;

a=200000000;

xx=linspace(800,1500,2); %只取2长度测试,实际的矩阵应该更大

yy=linspace(-6,6,2)*1e-6;

[X,Y]=meshgrid(xx,yy);

M=exp(-u*arfa^2)*exp(i*u*pi*a^2/x*1e-14*7)*besselj(0,u^0.5*2*a*pi*sin(y)/x*6);

fstr=char(vectorize(inline(M)));

%不能直接将quadl进行符号运算,将其转换为字符表达式,注意其中的inline(%s)是必需的,否则无法对fstr进行函数运算,产生错误

fstr=

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值