主题:请教用MATLAB求积分
joy2008
[专家分:0] 发布于 2008-05-14 14:44:00
有一个矩阵F,要用trapz数值法求它的积分。请问怎么写?
比如:
F=[ 1/5000000*(-1+1/3000*conj(x))*(1/3000*x-1)/(300-1/20*x)^3, 1/15000000000*(-1+1/3000*conj(x))*x/(300-1/20*x)^3]
[ 1/15000000000*conj(x)*(1/3000*x-1)/(300-1/20*x)^3, 1/45000000000000*conj(x)*x/(300-1/20*x)^3]
回复列表 (共2个回复)
沙发
joy2008 [专家分:0] 发布于 2008-05-15 09:08:00
[b]程序是这样的:[/b]
b=300
L=3000
h1=300
h2=150
E=200000
syms x
B=[x/L-1,x/L]
h=h1+(h2-h1)*x/L
I=b*h^3/12
x=0:0.1:L
f=B'*B/(E*I)
trapz(x,f)
[b]结果到f矩阵没问题,但积分却发生错误.如下:[/b]
f =
[ 1/5000000*(-1+1/3000*conj(x))*(1/3000*x-1)/(300-1/20*x)^3, 1/15000000000*(-1+1/3000*conj(x))*x/(300-1/20*x)^3]
[ 1/15000000000*conj(x)*(1/3000*x-1)/(300-1/20*x)^3, 1/45000000000000*conj(x)*x/(300-1/20*x)^3]
[color=FF0000]??? Error using ==> trapz
LENGTH(X) must equal the length of the first non-singleton dimension of Y.[/color]
[b][size=4]请教如何解决?[/size][/b]
板凳
magic.cg [专家分:110] 发布于 2008-07-17 21:20:00
syms x
b=300;
L=3000;
h1=300;
h2=150;
E=200000;
B=[x/L-1,x/L];
h=h1+(h2-h1)*x/L;
I=b*h^3/12;
f=B'*B/(E*I);
F=ones(size(f));
t=0:1:L;
x=t';
for i=1:4
w=inline(f(i));
vectorize(w);
z=w(x);
F(i)=trapz(z);
end
disp(F)
这样就可以了 呵呵
我来回复