bao123 发表于 2007-6-25 09:31

积分问题 (看了以前的帖子还是不会)

我按照下程序
    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 编辑 ]

xjzuo 发表于 2007-6-25 10:01

提示:
1.函数写得不对,且括号不匹配;
2.quadl用法不对(help带参数用法)

[ 本帖最后由 xjzuo 于 2007-6-25 12:41 编辑 ]

bao123 发表于 2007-6-25 10:11

你的意思是quadl不能带参数吧?
我改下试试

bao123 发表于 2007-6-25 10:18

括号没错啊,
函数不对是什么意思?
是不能这么写吗?
能说仔细点吗?
这个问题郁闷死我了:@Q :'(

bao123 发表于 2007-6-25 10:26

原帖由 xjzuo 于 2007-6-25 10:01 发表 http://www.chinavib.com/forum/images/common/back.gif
提示:
1.函数写得不对,且括号不匹配;
2.quadl用法不对(带参数)


函数里不能有其他参数吗?

lenapu 发表于 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)
倒是可以得到结果,不过不知道是不是你要的

bao123 发表于 2007-6-25 18:27

回复 #6 lenapu 的帖子

必须把参数带入吗?
事先不知道参数怎么办啊?

mst-tum 发表于 2007-7-2 19:12

楼主,带参数的问题,解决了吗?`
如果解决了,分享一下解决办法吧。
这两天被这个闹得头疼。或者那位高人,在帮以下忙吧,
已经看过matlab里所有关于几分的函数了,dblquad,quad,truplequad,quadl,
就是没看到带参数的解决办法,头疼阿!:@Q

xray 发表于 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

mst-tum 发表于 2007-7-2 20:10

谢拉!
虽然还没看懂,我在研究一下!
页: [1]
查看完整版本: 积分问题 (看了以前的帖子还是不会)