lenapu 发表于 2007-6-3 14:28

请帮我看看这个数值积分的程序

我运行这个程序:
syms x y t
E= zeros(9);
for i = 1:9,
for j = 1:9,
E(i,j) =int(2*sin(t)/(10000*((i-5)/200)-273-102*cos(2*t)+10000*((j-5)/200)^2-400*(j-5)/200*sin(t))^(1/2),t,0,2*pi);
end
end
disp(E)

运行了很久(大概十来个小时)才得到这个结果
??? Error using ==> sym/maple
System error, ran out of memory

Error in ==> D:\toolbox\symbolic\@sym\int.m
On line 51==>    r = maple('map','int',f,);

请帮我修改一下,谢谢!

咕噜噜 发表于 2007-6-3 15:46

楼主为什么不先积分后循环

hunter_009 发表于 2007-6-3 17:17

楼主为什么不用数值积分.难道非用符号积分吧?

pengweicai 发表于 2007-6-3 18:50

好像不是很复杂的积分, 可以算出定积分来的。

lenapu 发表于 2007-6-3 22:21

E(i,j) =int(2*sin(t)/(10000*((i-5)/200)-273-102*cos(2*t)+10000*((j-5)/200)^2-400*(j-5)/200*sin(t))^(1/2),t,0,2*pi);


这个式子就是通过int(0.02*sin(t)/sqrt(x-0.02-0.02*cos(t)^2+(y-0.02*sin(t))^2+0.0025),t,0,2*pi)得到的结果。

lenapu 发表于 2007-6-3 22:47

我用quad函数,举个例子
F = inline('0.02*sin(x)/sqrt(1-0.02-0.02*cos(x).^2+(1-0.02*sin(x).^2+0.0025))');
Q = quad(F,0,2);
disp(Q)

为什么会显示一下错误啊?
???Index exceeds matrix dimensions.

Error in ==> D:\toolbox\matlab\funfun\quad.m
On line 70==> if ~isfinite(y(7))

eight 发表于 2007-6-3 23:15

原帖由 lenapu 于 2007-6-3 22:47 发表 http://www.chinavib.com/forum/images/common/back.gif
我用quad函数,举个例子
F = inline('0.02*sin(x)/sqrt(1-0.02-0.02*cos(x).^2+(1-0.02*sin(x).^2+0.0025))');
Q = quad(F,0,2);
disp(Q)

为什么会显示一下错误啊?
???Index exceeds matrix dimensi ...

用 ./ 非 /

lenapu 发表于 2007-6-4 09:35

我想让quad参与循环,比如:
A=zeros(10);
for k=1:10
F = inline('0.02*sin(x)+k');
A(k)= quad(F,0,2);
end
disp(A)

可是却又显示错误,是不是积分函数里面除了积分变量以外还含有其他的变量的时候,就不能应用quad函数?
??? Error using ==> inline/feval
Not enough inputs to inline function.

Error in ==> D:\toolbox\matlab\funfun\quad.m
On line 62==> y = feval(f, x, varargin{:});

lenapu 发表于 2007-6-4 15:32

看了‘“关于求解变参数微分方程”回复专贴’
明白了
呵呵!
页: [1]
查看完整版本: 请帮我看看这个数值积分的程序