回 帖 发 新 帖 刷新版面

主题:请教用MATLAB求积分

有一个矩阵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个回复)

沙发

[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]

板凳


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)
这样就可以了 呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册