Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-05-21, 22:59   #1
sazor
初级会员
 
注册日期: 2010-05-21
年龄: 36
帖子: 2
声望力: 0
sazor 正向着好的方向发展
默认 大家帮我看看这个程序怎么回事

程序1:
eps = (0.1:0.1:5); %epsilon

Fai_L = acos(1-2*eps); %积分限。
Fai_L(eps>1)=pi; %epsilon 大于1积分限设为pi

syms f e

int_f = (1-(1-cos(f))/(2*e))^(3/2)*cos(f)/(2*pi); %被积函数

Jr = zeros(size(eps)); %初始化Jr

for i=1:length(eps)
Jr(i) = double(int(subs(int_f,e,eps(i)),f,-Fai_L(i),Fai_L(i))); %积分
end

plot(eps,real(Jr)); %画图
xlabel 'ε'
ylabel 'Jr'
程序1运行后可画出图形。

稍微改动下变为程序2

eps = (0.1:0.1:5); %epsilon

Fai_L = acos(1-2*eps); %积分限。
Fai_L(eps>1)=pi; %epsilon 大于1积分限设为pi

syms f e

int_f = (1-(1-cos(f))/(2*e))^(1.1)*cos(f)/(2*pi); %被积函数

Jrl = zeros(size(eps)); %初始化Jr

for i=1:length(eps)
Jrl(i) = double(int(subs(int_f,e,eps(i)),f,-Fai_L(i),Fai_L(i))); %积分
end

plot(eps,real(Jrl)); %画图
xlabel 'ε'
ylabel 'Jr'
就无法运行了。显示错误,两个的改动之处是将1中的1.5改为1.1,我的目的是想解出2中的那个积分方程,但是总是出现错误

??? Error using ==> mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a
double array.

If the input expression contains a symbolic variable, use the VPA function
instead.

Error in ==> sym.sym>sym.double at 927
Xstr = mupadmex('mllib::double', S.s, 0);

Error in ==> jrlimage at 13
Jrl(i) = double(int(subs(int_f,e,eps(i)),f,-Fai_L(i),Fai_L(i))); %积分
sazor 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 14:35


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