声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1752|回复: 6

[编程技巧] 请教变量问题

[复制链接]
发表于 2007-5-22 15:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问怎样把一个符号值,变成一个变量?
例如  syms  y
定义了y 符号
那么怎么把y 变成一个可计算的变量  y1?
回复
分享到:

使用道具 举报

发表于 2007-5-22 15:31 | 显示全部楼层


请搜索版面
 楼主| 发表于 2007-5-22 15:39 | 显示全部楼层
搜索关键词是?“变量”
发表于 2007-5-22 15:43 | 显示全部楼层
把你的问题直接贴出来,就不至于浪费大家的时间了.
 楼主| 发表于 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的积分,我这样做好像不对,但是我不知道怎么改
发表于 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 编辑 ]
 楼主| 发表于 2007-5-22 15:58 | 显示全部楼层
y1=linspace(-50,50,10)
这句不时对y1赋值了的吗?
我个人感觉这样做以后,y1 的值会自动带入Q2中的Y里,而没有进行Q3=trapz(y1,Q20)的积分阿
不知道我理解的对不对,我用简单的例子验证得来的
所以我觉得如何才能让Y只是变成变量 而不会直接带入到Q2中,然后再对Q2在Y1 的范围(-50,50)内积分呢?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-3 08:24 , Processed in 0.057586 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表