Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-08-21, 17:19   #1
yunaijun
初级会员
 
注册日期: 2009-08-21
年龄: 42
帖子: 1
声望力: 0
yunaijun 正向着好的方向发展
默认 求助:Matlab此程序问题在哪?

function M = ellmutualint
M = zeros(41,15);
A = .2; %large radius
n1 = 10; %small turn density
n2 = 20; %large turn density
M1 = .05; %half small length
M2 = .08; %half large length
p = sym('p');
for y = 1:1:15;
if y < 10;
alpha = .1*y;
end
if y > 9;
alpha = 0.95+(.01*(y-10));
end
a = A*alpha; %small radius
for x = 1:1:41;
d = 0.40-(0.01*(x-1));
if not((alpha == 1) && (abs(d) <= (M1+M2)));
c1 = d + M1 + M2;
c2 = d + M1 - M2;
c3 = d - M1 + M2;
c4 = d - M1 - M2;
g = A^2 + a^2;
f1 = ((sin(p)^2)*sqrt(g+(c1^2)-2*A*a*cos(p)))/(g-2*A*a*cos(p));
f2 = ((sin(p)^2)*sqrt(g+(c2^2)-2*A*a*cos(p)))/(g-2*A*a*cos(p));
f3 = ((sin(p)^2)*sqrt(g+(c3^2)-2*A*a*cos(p)))/(g-2*A*a*cos(p));
f4 = ((sin(p)^2)*sqrt(g+(c4^2)-2*A*a*cos(p)))/(g-2*A*a*cos(p));
I1 = int(f1,p,0,pi);
I2 = int(f2,p,0,pi);
I3 = int(f3,p,0,pi);
I4 = int(f4,p,0,pi);

M(x,y) = .004*pi*n1*n2*(A^2)*(a^2)*(I1 - I2 - I3 + I4); 提示这行有问题!!!

else
M(x,y) = 0.0000000001;
end
end
end

好,我初学matlab程序,上面那一行有问题,,提示内容是:Conversion to double from sym is not possible.

我把(I1 - I2 - I3 + I4)这个去掉,程序就可以运行,看来是出在这上面,请问我应该如何修改?
yunaijun 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:29


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.