注册 登录
编程论坛 Matlab

[求助]积分问题

sky19 发布于 2007-09-07 21:35, 732 次点击

S='(l-x).^2+(m-y).^2+n.^2';
syms l;
int(S,'-538+1.8*n','538-1.8*n')
运行出现如下提示:
??? Error using ==> sym.sym>char2sym
Not a valid symbolic expression.

Error in ==> sym.sym at 92
S = char2sym(x);

Error in ==> char.int at 9
y = int(sym(f),varargin{:});
请教各位这个是什么情况怎么解决啊?谢谢!

2 回复
#2
sorrentoo2007-09-07 22:59
回复:(sky19)[求助]积分问题
我也不是很懂,理解如下:

修改如下:

S=sym('(l-x)^2+(m-y)^2+n^2');
%syms l;
intS=int(S,'x','-538+1.8*n','538-1.8*n')

积分是矩阵运算?所以不能用数组的乘除符号。

不过结果很恶心:

intS=
.33333333333333333333333333333333*(538.-1.8*n)^3-.33333333333333333333333333333333*(-538.+1.8*n)^3-1.*l*((538.-1.8*n)^2-1.*(-538.+1.8*n)^2)+l^2*(1076.-3.6*n)+(m-1.*y)^2*(1076.-3.6*n)+n^2*(1076.-3.6*n)

#3
sky192007-09-07 23:06
谢谢sorrentoo的解答!
我把被积项改了一下,结果又出现了这样的状况:

S=sym('1/(((l-x)^2+(m-y)^2+n^2)^2)');
intS=int(S,'l','-538+1.8*n','538-1.8*n')
Warning: Explicit integral could not be found.
> In sym.int at 58

intS =

int(1/((l-x)^2+(m-y)^2+n^2)^2,l = -538+1.8*n .. 538-1.8*n)

请问这是怎么回事啊?

[此贴子已经被作者于2007-9-7 23:19:53编辑过]

1