PDA

查看完整版本 : [MATLAB混合编程] 哪位高手帮我看下这个定积分问题呀,不胜感激!


ylmfe
2009-05-18, 11:35
我想求一条位于坐标轴第一象限 的一条曲线的定积分,但是此曲线的表达式未知,它在MATLAB中以矩阵w存在,我用plot(w)这个命令可以画出此曲线,现在我编程如下:假如此曲线是y=2x,for i=3:8;u=inline('2*x','x');
s(i)=quad(u,i,i+1);
end;p=max(s(i)),i 运行正确;
我改成:for i=3:8;q=2*x;u=inline('q','x');
s(i)=quad(u,i,i+1);
end;p=max(s(i)),i
??? Undefined function or variable 'x'.
>> for i=3:8;syms x;q=2*x;u=inline('q','x');
s(i)=quad(u,i,i+1);
end;p=max(s(i)),i
??? Error using ==> inlineeval
Error in inline expression ==> q
??? Error using ==> eval
Undefined function or variable 'q'.

Error in ==> inline.subsref at 25
INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> quad at 62
y = f(x, varargin{:});目的是想把u=inline('2*x','x'); 中的2*x,换成我那矩阵w.晕死。试了好几种方法都不行,我想积分几就是求面积,后来我干脆用这个:
x=0:1000;y=x;i=3000:5000;z(i)=(1/2*(y(i+1)-y(i)))+y(i);o=max(z(i));o最大值求出来了,可是我要的是这个最大值所对应的i值,知道o(i)=此最大值,怎么求i啊,:(