声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1765|回复: 6

[综合讨论] besselh()的问题

[复制链接]
发表于 2010-4-19 10:49 | 显示全部楼层 |阅读模式

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

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

x
表达式besselh(nu,K,Z),其中nu可不可以是symbolic而非数字的?

我试图求和
symsum(besselh(n,2,beta*a),n,-inf,+inf)
但是提示错误
Arguments must be numeric.

那我想求这个从负无穷到正无穷的和该怎么做呢?

谢谢!
回复
分享到:

使用道具 举报

发表于 2010-4-19 11:36 | 显示全部楼层
个人水平专业有限, 没使用过besselh这些函数的经验
但个人以为都已提示了, 应该就是吧! 待高人路过

若数值计算可行的话, 则负无穷及正无穷处都应该趋近零
设定数值小于某阀值试试

[ 本帖最后由 ChaChing 于 2010-4-20 01:01 编辑 ]
 楼主| 发表于 2010-4-20 13:47 | 显示全部楼层
我想了一下,从正无穷到无穷不好算,就直接赋值,比如找个比较大的数值区间n=-1000:0.1:1000这样去尽量接近无穷。这样算出来的结果当然是个矩阵,然后用sum()求各个矩阵项的和就是最后的求和。
不知道这个思路对不对?
我现在遇到的问题是,最后求和出来的这个数据里面还有一个变量phi,比如phi=0:pi/5:2*pi,然后要以phi和最后的结果画一个图。

a=0.01;
E0=8.85e-12;U0=pi*4e-7;c=3e8;
z=a*2*pi*c*sqrt(E0*U0);  %用在besselh()中
n=-10:.1:10;syms phi;  %定义变量
f=j.^(-n).*exp(j.*n.*phi)./(besselh(n,2,z));    %要求和的含besselh()的方程
SUM=sum(f)     %求和
phi=0:2*pi/200:2*pi;
J=1/(a*c*U0*pi^2)*SUM;   %最后的结果作为y坐标轴
plot(phi,J)

结果提示错误
Conversion to double from sym is not possible.


我知道这步错误也许出在之前定义了syms phi之后,算出了SUM,无法再将phi带入到SUM中的问题。可是,如果我在计算SUM之前就定义好phi变量的话,在SUM之后,这就变成了一个而不是一个可以画图的方程了。
那么不知道这个图要怎么画才正确?谢谢版主

[ 本帖最后由 bleakhand 于 2010-4-20 14:04 编辑 ]
发表于 2010-4-20 15:13 | 显示全部楼层
做个循环连续赋值就行了:
clear;clc
a=0.01;
E0=8.85e-12;U0=pi*4e-7;c=3e8;
z=a*2*pi*c*sqrt(E0*U0);  %用在besselh()中
n=-10:.1:10;
besselh(n,2,z);
phi=0:2*pi/200:2*pi;
f=zeros(length(phi),length(n));
SUM=zeros(1,length(phi));
J=zeros(1,length(phi));
for i=1:length(phi)
     f(i,:)=j.^(-n).*exp(j.*n.*phi(i))./(besselh(n,2,z));
     SUM(i)=sum(f(i,:));
     J(i)=1/(a*c*U0*pi^2)*SUM(i);
end
plot(phi,J)


不过LZ的结果有许多虚数,应该好好设置一下参数。。

评分

1

查看全部评分

 楼主| 发表于 2010-4-21 08:33 | 显示全部楼层


万分感谢楼上!如果有空能不能讲讲为什么要这样改?谢谢!

ps, 好像去掉产生0数组的那几句命令,没有影响。

[ 本帖最后由 bleakhand 于 2010-4-21 08:43 编辑 ]
发表于 2010-4-21 10:25 | 显示全部楼层
因为你的n,y,besselh()都是1x201的矩阵,运算完后,f也肯定是1X201的矩阵,做和的话就是一个数。。你的意思是每个phi值对应一个1x201的矩阵结果,所以要做一个循环。。每次只带一个phi值。。
去掉产生0数组确实没有什么影响,但这样做是给这些变量分配足够的单元,提高运算速度。。
 楼主| 发表于 2010-4-21 11:31 | 显示全部楼层
带入之前做和确实是一个数,所以我想有phi变量应该可以直接plot画图,结果不行....
这个算法的意思就是把phi1对应的201个值相加得到对应phi1的J,然后phi2,phi3。。。都这样,最后画图?

真是谢谢啦!

[ 本帖最后由 bleakhand 于 2010-4-21 12:33 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-17 01:58 , Processed in 0.059395 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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