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

附整个程序,请各位老师帮下忙,我是刚学的~~
function result=Scan_farfild(t0,v0,a,b,c,r,f)
syms t v
A=cos(v0).*sin(t).*cos(v)-sin(v0).*sin(t).*sin(v);
B=cos(t0).*sin(v0).*sin(t).*cos(v)-sin(t0).*cos(t)+cos(t0).*cos(v0).*sin(t).*sin(v);
sin(t1)=(A.^2+B.^2).^(1/2);
t1=asin(sin(t1));
cos(v1)=A/((A^2+B^2)^0.5);
v1=acos(cos(v1));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%角度变换
ps22=sin(t1)*sin(t)*cos(t0)-sin(t0)*cos(v0)*cos(t)*sin(t1)*sin(v)+cos(v0)*cos(t)*cos(t1)*sin(v1)*sin(v)*cos(t0)+cos(t)*cos(t1)*sin(v1)*cos(v)*cos(t0)*sin(v0)-sin(t0)*cos(t)*sin(t1)*cos(v)*sin(v0)+cos(v0)*cos(t)*cos(t1)*cos(v1)*cos(v)+sin(t0)*cos(t1)*sin(v1)*sin(t)-cos(t)*cos(t1)*cos(v1)*sin(v)*sin(v0);
ps23=cos(t)*sin(v1)*sin(v)*sin(v0)-cos(v0)*cos(t)*sin(v1)*cos(v)+sin(t0)*cos(v1)*sin(t)+cos(v0)*cos(t)*cos(v1)*sin(v)*cos(t0)+cos(t)*cos(v1)*cos(v)*cos(t0)*sin(v0);
ps32=cos(v0)*cos(t0)*cos(t1)*sin(v1)*cos(v)-cos(v0)*sin(t0)*sin(t1)*cos(v)-cos(v0)*cos(t1)*cos(v1)*sin(v)+sin(t0)*sin(t1)*sin(v)*sin(v0)-cos(t1)*cos(v1)*cos(v)*sin(v0)-cos(t0)*cos(t1)*sin(v1)*sin(v)*sin(v0);
ps33=cos(v0)*cos(v1)*cos(t0)*cos(v)+cos(v0)*sin(v1)*sin(v)+sin(v1)*cos(v)*sin(v0)-cos(v1)*cos(t0)*sin(v)*sin(v0);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%定义4个矩阵参数
q=(sin(t1).^2*cos(v1).^2)/(a.^2)+(sin(t1).^2*sin(v1).^2)/(b.^2)+(cos(t1).^2)/(c.^2).^0.5;
g=(cos(v1).^2/a.^2+sin(v1).^2/b.^2).^0.5;
r1=r;
r2=r1*(((sin(t1).^2*cos(v1).^2)/(a.^2)+(sin(t1).^2*sin(v1).^2)/(b.^2)+(cos(t1).^2)/(c.^2)).^0.5);
sint2=sin(t1)*g/q;
t2=asin(sint2);
sinv2=(sin(v1)/b)/g;
v2=asin(sin(v2));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%尺度变换
tt=k2*m*a1;n=6;
Jn0=(2/(pi*tt)).^(1/2)*cos(tt-((2*n+1)/4)*pi);
Jn1=diff(Jn0,'tt');
tt1=k2*a1;
Jn2=(2/(pi*tt1)).^(1/2)*cos(tt1-((2*n+1)/4)*pi);
Jn3=diff(Jn2,'tt1');
Hn=j.^(n+1)*exp(-j*k2*m*a1);

Hn0=diff(Hn,'tt',1);
Hn1=j.^(n+1)*exp(-j*tt1);
Hn2=diff(Hn,'tt1',1);
cn2=(Jn2*Jn1-m*Jn0*Jn3)/(Hn*Jn1-m*Jn0*Hn2);
dn2=(m*Jn2*Jn1-Jn0*Jn3)/(m*Hn0*Jn1-Jn0*Hn1);
l=prod(1:n);
s=cos(t2);
k=diff(s^2-1,'s',n);
pn=(1/(2^n*l))*k;
p1n=-diff(pn,'t2');
xn2=diff(p1n,'t2');
yn2=p1n/sin(t2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调用特殊函数
s2=symsum(((2*n+1)*(cn2*xn2+dn2*yn2))/(n*(n+1)));
s1=symsum((2*n+1)*(cn2*yn2+dn2*xn2)/(n*(n+1)));
Et2s=j*exp(-j*k2*r2)*cos(v2)*s2/(k2*r2);
Ev2s=-j*exp(-j*k2*r2)*sin(v2)*s1/(k2*r2);
Et1s=((cos(t2)*cos(v2)*Et2s)/a-(sin(v2)*Ev2s)/a)*cos(t1)*cos(v1)+((cos(t2)*sin(v2)*Et2s)/b+(cos(v2)*Ev2s)/b)*cos(t1)*sin(v1)+(sin(t1)*sin(t2)*Et2s)/c;
Ev1s=((cos(t2)*cos(v2)*Et2s)/a-(sin(v2)*Ev2s)/a)*(-sin(v1))+((cos(t2)*sin(v2)*Et2s)/b+(cos(v2)*Ev2s)/b)*cos(v1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%定义函数
k=1/(2.*pi.*f);
k1=k;
k2=k1/((sin(t0).^2*cos(v0).^2)/a.^2+(sin(t0).^2*sin(v0).^2)/b.^2+cos(t0).^2/c.^2).^0.5;
Ets=ps22*Et1s+ps23*Ev1s;
Evs=ps32*Et1s+ps33*Ev1s;
t=[20:20:180];
y=abs(Ets);
plot(t,y);
%%%%%%%%%%%%%%%%%%
zhouxingli 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]14與2001的區別 llp008008 MathCAD论坛 1 2009-04-02 21:04
[求助]如何使用package? 菲比寻常 Mathematica论坛 0 2009-03-23 19:12
请教怎么解这个递归方程 lohas1985 MATLAB论坛 0 2009-03-12 14:34
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 yijianmei MATLAB论坛 1 2008-07-24 10:15
【求助】如何解含有贝塞尔函数导数的方程,哪儿位帮一下忙! xiaorain19841202 MATLAB论坛 0 2007-06-03 16:27


所有时间均为北京时间。现在的时间是 07:34


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