声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1480|回复: 9

[编程技巧] 积分问题 (看了以前的帖子还是不会)

[复制链接]
发表于 2007-6-25 09:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我按照下程序
    clear all
k=linspace(0,5);
for i=1:length(k)
    kk=k(i);
    fun=strcat('sin(',num2str(kk),'*x).*x.^2');
    y(i)=quadl(inline(fun),1,5);
end
plot(k,y)


作了个类似的

A1=6;A2=-6;A4=12;s=0.8;w0=12;w=15;t1=0.15;U0=120;
       kw=linspace(0,3);
          for i=1:length(kw)
              kk=kw(i);
              fun=strcat('((A1+A2.*(exp.(-s*w0.*x)).*cos(w.*x)+A4.*sin(w.*x).*(exp.(-s*w0.*x))).*cos(',num2str(kk),'*x)');
              y1(i)=quadl(inline(fun),0,t1);
          end
       figure(2)
       plot(kw,y1)

为什么总出现下面这个问题啊?:'(
??? Error using ==> inline.feval
Not enough inputs to inline function.

Error in ==> quadl at 64
y = feval(f,x,varargin{:}); y = y(:).';

Error in ==> maichong1 at 11
              y1(i)=quadl(inline(fun),0,t1);

[ 本帖最后由 bao123 于 2007-6-25 09:57 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-6-25 10:01 | 显示全部楼层
提示:
1.函数写得不对,且括号不匹配;
2.quadl用法不对(help带参数用法)

[ 本帖最后由 xjzuo 于 2007-6-25 12:41 编辑 ]
 楼主| 发表于 2007-6-25 10:11 | 显示全部楼层
你的意思是quadl不能带参数吧?
我改下试试
 楼主| 发表于 2007-6-25 10:18 | 显示全部楼层
括号没错啊,
函数不对是什么意思?
是不能这么写吗?
能说仔细点吗?
这个问题郁闷死我了:@Q :'(
 楼主| 发表于 2007-6-25 10:26 | 显示全部楼层
发表于 2007-6-25 17:09 | 显示全部楼层
%A1=6;A2=-6;A4=12;s=0.8;w0=12;w=15;t1=0.15;U0=120;
       kw=linspace(0,3);
          for i=1:length(kw)
              kk=kw(i);
              fun=['(6-6*(exp(-0.8*12*x)).*cos(15*x)+12*sin(15*x).*(exp(-0.8*12*x))).*cos(',num2str(kk),'*x)'];
              y1(i)=quadl(inline(fun),0,0.15);
          end
       figure(2)
       plot(kw,y1)
倒是可以得到结果,不过不知道是不是你要的
 楼主| 发表于 2007-6-25 18:27 | 显示全部楼层

回复 #6 lenapu 的帖子

必须把参数带入吗?
事先不知道参数怎么办啊?
发表于 2007-7-2 19:12 | 显示全部楼层
楼主,带参数的问题,解决了吗?`
如果解决了,分享一下解决办法吧。
这两天被这个闹得头疼。或者那位高人,在帮以下忙吧,
已经看过matlab里所有关于几分的函数了,dblquad,quad,truplequad,quadl,
就是没看到带参数的解决办法,头疼阿!:@Q
发表于 2007-7-2 19:45 | 显示全部楼层

偶以前写的一个带参数积分的例子(matlab 7.0)

function y = my_conv(A)

warning off

y = 2*quad(@(x)fun_conv(x,0,A,A/2),-A,A);


function y = fun_conv(x,y,A,z)
    y = fun_fa(x,A) .* fun_fg(y-x,z);
end

function y = fun_fa(x,A)
    y = 1./(A*pi*sqrt(1-(x/A).^2));
end

function y = fun_fg(x,z)
    y = 1/(sqrt(2*pi)*z)*exp(-x.^2/(2*z^2));
end

end

评分

1

查看全部评分

发表于 2007-7-2 20:10 | 显示全部楼层
谢拉!
虽然还没看懂,我在研究一下!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 22:46 , Processed in 0.065958 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表