rew10812 发表于 2007-5-22 15:10

请教变量问题

请问怎样把一个符号值,变成一个变量?
例如symsy
定义了y 符号
那么怎么把y 变成一个可计算的变量y1?

eight 发表于 2007-5-22 15:31

原帖由 rew10812 于 2007-5-22 15:10 发表 http://www.chinavib.com/forum/images/common/back.gif
请问怎样把一个符号值,变成一个变量?
例如symsy
定义了y 符号
那么怎么把y 变成一个可计算的变量y1?

请搜索版面

rew10812 发表于 2007-5-22 15:39

搜索关键词是?“变量”

xjzuo 发表于 2007-5-22 15:43

把你的问题直接贴出来,就不至于浪费大家的时间了.

rew10812 发表于 2007-5-22 15:46

x=linspace(0,2,10);
syms y;
h=double(6.63*10^(-34));
m=double(1.75e5);
u1=1;
u2=3;
y0=0;
n0=1e4;
v=5e14;
d=2;
k=double(h*v*n0*u1*m/(4*pi));
A=k./((d-x).^2+(y-y0).^2);
B=u1+u2*sqrt((d-x).^2+(y-y0).^2);
C=exp((-1)*B);
D=A.*C;
%Q1=dblquad(inline(D),0,0.13,-50,50);
Q2=trapz(x,D)
y1=y;
y1=linspace(-50,50,10)
%Q20=subs(Q2,y,y1)
Q3=trapz(y1,Q20)
在对D求完积分后得关于y 的式子Q2,然后我想把Q2中符号y变成变量y1 然后再求Q2的积分,我这样做好像不对,但是我不知道怎么改

xjzuo 发表于 2007-5-22 15:51

subs(Q2,y,y1)这样已经满足你说的要求.
估计下面的结果是你想要的吧:
不过,Q3 =1.0063e-018-----数值有点小
%%%%%%%%%%%%%%%%%%%
clear all
x=linspace(0,2,10);
syms y;
h=double(6.63*10^(-34));
m=double(1.75e5);
u1=1;
u2=3;
y0=0;
n0=1e4;
v=5e14;
d=2;
k=double(h*v*n0*u1*m/(4*pi));
A=k./((d-x).^2+(y-y0).^2);
B=u1+u2*sqrt((d-x).^2+(y-y0).^2);
C=exp((-1)*B);
D=A.*C;
%Q1=dblquad(inline(D),0,0.13,-50,50);
Q2=trapz(x,D)
y1=y;% 这句其实是多余的
y1=linspace(-50,50,10)
Q20=subs(Q2,y,y1)
Q3=trapz(y1,Q20)
%%%%%%%%%%%%%%%

[ 本帖最后由 xjzuo 于 2007-5-22 16:02 编辑 ]

rew10812 发表于 2007-5-22 15:58

y1=linspace(-50,50,10)
这句不时对y1赋值了的吗?
我个人感觉这样做以后,y1 的值会自动带入Q2中的Y里,而没有进行Q3=trapz(y1,Q20)的积分阿
不知道我理解的对不对,我用简单的例子验证得来的
所以我觉得如何才能让Y只是变成变量 而不会直接带入到Q2中,然后再对Q2在Y1 的范围(-50,50)内积分呢?
页: [1]
查看完整版本: 请教变量问题