alljoyland 发表于 2008-8-7 16:03

matlab的匿名函数问题

u=(-.1:.0002:.1)';
% thetas= @(s) exp(s.*u(j)).*exp(-0.0008.*s+0.0002 .*(s.^2)./2+(exp(s.*0.0046+ 0.002.*(s.^2)./2)-1).*0.0355);
pdf = zeros(1001,1);
a=zeros(1001,1);
fu=zeros(1001,1);
thetas= @(s) exp(s.*b).*exp(-0.0008.*s+0.0002 .*(s.^2)./2+(exp(s.*0.0046+ 0.002.*(s.^2)./2)-1).*0.0355);
for j =1:length(u);
b=u(j);
%thetas= @(s) exp(s.*b).*exp(-0.0008.*s+0.0002 .*(s.^2)./2+(exp(s.*0.0046+ 0.002.*(s.^2)./2)-1).*0.0355);
%这个 带 u(j)的积分 竟然能要放到积分里面 才能有作用

pdf(j)= 1/(2*pi*i)*quadl(thetas,4-i*10000,4+i*10000);
a(j)=j;
% fu(j)=real(pdf(j)');
end;
fu=real(pdf');
问题就在那个中文注释的那一句
thetas= @(s) exp(s.*b).*exp(-0.0008.*s+0.0002 .*(s.^2)./2+(exp(s.*0.0046+ 0.002.*(s.^2)./2)-1).*0.0355);
如果这句是在循环里面,也就是循环里面的这句不被注释掉,将会是正确的,
否则便是错误的结果

这个匿名函数含有 b 参数是在循环里面改变的,如何看这个问题
结果积分出来的曲线有点像正态分布的钟形曲线

sigma665 发表于 2008-8-7 22:13

回复 楼主 alljoyland 的帖子

建议你搜索精华贴,带参数积分

soberprogress 发表于 2009-4-4 13:04

回复 楼主 alljoyland 的帖子

请问搞定了没有?欧遇到同样的问题了??:@L
页: [1]
查看完整版本: matlab的匿名函数问题