0

J(x)= 1/π 积分 cos(xsintheta)。限制是从 0 到 π。

在 MATLAB 中将 J(2pid/λ) 绘制为 d/λ 的函数,d/λ 介于 0 和 2 之间。天线 0.7 和 0 之间的相关性在多少距离(波长)处?

当我定义 syms theta 并使用 J_=integral(J,0,pi); 时,我不明白如何将它集成到 matlab 中。出现错误。其次,当我手动集成它时,答案显示为 0。请帮助我。

4

2 回答 2

2

除非你真的需要手动计算,否则你应该使用 Matlab 的内置besselj函数来计算第一类的零阶贝塞尔函数

dlam = 0:0.01:2;
x = 2*pi*dlam;
y = besselj(0,x)
figure;
plot(x,y)

这将更快、更准确地执行正交。

如果您希望高度准确地确定或所在的点,而y不是从绘图中读取它们,您可以将符号数学与和结合使用。假设这是问题的那一部分(我对天线一无所知),您可以使用以下内容:0.70solvesym/besselj

syms x;
double(solve(besselj(0,x) == 0.7,x))
于 2013-11-24T23:05:49.163 回答
0

integral命令不适用于符号,它适用于函数。对于符号积分,命令是int.

我现在手头没有 MATLAB 来检查拼写错误等,但是这样的东西应该可以工作:

x = 0.1;
integral(@(theta) cos(x.*sin(theta)), 0, pi)/pi

甚至

bessel = @(x) integral(@(theta) cos(x.*sin(theta)), 0, pi)/pi;
bessel(0.1)
于 2013-11-24T22:34:07.437 回答