bettyshen 发表于 2011-7-18 16:35

请教大家 matlab 积分问题

本帖最后由 bettyshen 于 2011-7-18 16:42 编辑

此式为要积分的公式。其中f是表达式很长的函数。我用int 积分,结果总是不对。
如下的错误。不知怎么改呢?
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

请大家指教。谢谢

ChaChing 发表于 2011-7-21 00:55

本帖最后由 ChaChing 于 2011-7-21 00:56 编辑

Ref : 常见的程序出错问题整理 http://forum.vibunion.com/thread-46001-1-1.html, 14F
From http://forum.vibunion.com/home-space-uid-63979-do-blog-id-18250.html

qibbxxt 发表于 2011-7-21 13:57

建议你用quadl等函数进行数值积分

bettyshen 发表于 2011-8-9 13:55

谢谢大家的回答,我用quadl积分 出现下面的提示。Warning: System is inconsistent. Solution does not exist请问怎么解决呢

bettyshen 发表于 2011-8-10 09:10

请教大家 matlab积分问题

本帖最后由 bettyshen 于 2011-8-10 09:44 编辑

。    。

bettyshen 发表于 2011-8-10 09:37

RE: 请教大家 matlab 积分问题

本帖最后由 bettyshen 于 2011-8-10 09:39 编辑

回复 3 # qibbxxt 的帖子

clear
clc

w0=1.0;w1=2.0;w2=2.0;alpha=1.0;beta1=0.01;beta2=0.02;D1=0.01;D2=0.01;x1=0.3;x2=0.3;

g=w0^2.*a+alpha.*a.^3;
n=(alpha.*a.^2/4)./(w0^2+3*alpha*a.^2/4);
b0=(w0^2+3*alpha*a.^2/4).^0.5;
b2=(w0^2+3*alpha*a.^2/4).^0.5*n/2;

S12=D1/pi()./(((2*b0).^2-w1^2).^2+4*x1^2*w1^2.*(2*b0).^2); %%S1(2*b0)
S14=D1/pi()./(((4*b0).^2-w1^2).^2+4*x1^2*w1^2.*(4*b0).^2); %%S1(4*b0)

S21=D2/pi()./((b0.^2-w2^2).^2+4*x2^2*w1^2*b0.^2);          %%S2(b0)
S23=D2/pi()./(((3*b0).^2-w2^2).^2+4*x2^2*w2^2*(3*b0).^2);%%S2(3*b0)

g1=w0^2.*u+alpha*u.^3;
n1=(alpha*u.^2/4)/(w0^2.*u+3*alpha*u.^2/4);
b01=(w0^2+3*alpha*u.^2/4).^0.5;
b21=(w0^2+3*alpha*u.^2/4).^0.5.*n1/2;

SS12=D1/pi()./(((2*b01).^2-w1^2).^2+4*x1^2*w1^2*(2*b01).^2); %%S1(2*b0)
SS14=D1/pi()./(((4*b01).^2-w1^2).^2+4*x1^2*w1^2*(4*b01).^2); %%S1(4*b0)
SS21=D2/pi()./((b01.^2-w2^2).^2+4*x2^2*w1^2*b01.^2);          %%S2(b0)
SS23=D2/pi()./(((3*b01).^2-w2^2).^2+4*x2^2*w2^2*(3*b01).^2);%%S2(3*b0)


m1=-u.^2./8./g1.*(-beta1.*(4*w0^2+5*alpha.*u.^2./2)+beta2*u.^2.*(w0^2+3*alpha*u.^2/4))+...
   pi()*u.^2./32./g1.*((2*b01).*SS12.*(1./(u+3/4.*u.^2).^(1/2).*u.^2./(u+u.^3).*(1+3/2*u)+4*(u+3/4*u.^2).^(1/2).*u./(u+u.^3)-2*(u+3/4*u.^2).^(1/2).*u.^2./(u+u.^3).^2.*(1+3*u.^2))+...
   b21.*SS14.*(-1/16./(u+3/4*u.^2).^(3/2).*u.^2.*(1+3/2*u)+1/4./(u+3/4*u.^2).^(1/2).*u))+...
   pi()*u.^3./16./g1.^2.*((2*b01).*(2*b01+2*b21).*SS12+2*(b21).*b21.*SS14)+...
    pi()*u./8./g1.*((2*b01-b21).*SS21.*((1/2./(u+3/4*u.^2).^(1/2).*(1+3/2*u)+1/16./(u+3/4*u.^2).^(3/2).*u.^2.*(1+3/2*u)-1/4./(u+3/4*u.^2).^(1/2).*u).*u./(u+u.^3)+...
      ((u+3/4*u.^2).^(1/2)-1/8./(u+3/4.*u.^2).^(1/2).*u.^2)./(u+u.^3)-((u+3/4*u.^2).^(1/2)-1/8./(u+3/4.*u.^2).^(1/2).*u.^2).*u./(u+u.^3).^2.*(1+3*u.^2))+...
      (2*b21).*SS23.*(-1/8./(u+3/4*u.^2).^(3/2).*u.^3./(u+u.^3).*(1+3/2.*u)+3/4./(u+3/4.*u.^2).^(1/2).*u.^2./(u+u.^3)-1/4./(u+3/4*u.^2).^(1/2).*u.^3./(u+u.^3).^2.*(1+3*u.^2)))+...
    pi()*u./8./(g1).^2.*((2*b01-b21).*(2*b01+b21).*SS21+3*((b21).^2).*SS23);

B=@(a)pi()/16*a.^4./g.^2.*(4*b0.^2.*S12+b2.^2.*S14)+pi()/14*a.^4./g.^2.*(4*b0.^2.*S21+b2.^2.*S23);
BB=@(a)1./B;%被积函数1的推导

B1=pi()*u.^4/16./g1.^2.*(4*b01.^2.*SS12+b21.^2.*SS14)+pi()*u.^4/14./g1.^2.*(4*b01.^2.*SS21+b21.^2.*SS23);

y=@(u)2*m1./B1;         %被积函数2的推导

q=quadl(BB.*exp(quadl(y,u,0,a)),a,0,inf);程序不能计算,不知道问题出在哪里,请帮忙指教,谢谢
页: [1]
查看完整版本: 请教大家 matlab 积分问题