matlab的二维dirac函数积分

问题描述:

matlab的二维dirac函数积分
因为matlab里面没有二维的fourier变换,所以只好改用积分来实现.但是在对二维dirac函数积分的时候遇到了问题,
syms l m;
A=(l^0+m^0)/2;
I0=dirac(l-0.5)*dirac(m-0.5);
% A I0都是任意给定的关于l,m的函数,这里取A=1,I0=dirac(l-0.5)*dirac(m-0.5);
syms u v;
f0=I0*A;
tempf1=int(f0*exp(i*l*u),l,-inf,inf);
V=int(tempf1*exp(i*m*v),m,-inf,inf);
但是这段程序一运行可以发现,中间返回的过程函数tempf1结果为0,但事实上tempf1的值应该为dirac(m-0.5)*exp(i*u/2);
另外编写一段程序
syms x y;
f1=int(dirac(x),x,-inf,inf)
f2=int(dirac(x)*y,x,-inf,inf)
f3=int(dirac(x)*dirac(y),x,-inf,inf)
运行发现f1、f2的返回结果都是正确的,但f3返回的就是0.
应该怎么解决呢?
1个回答 分类:综合 2014-11-27

问题解答:

我来补答
我的matlab运行第一个结果就是你预测的tempf1 =dirac(m-1/2)*exp(1/2*i*u),
后边的没有出现你说的 0
f1 =1
f2 =y
f3 =dirac(y)
没有说的 0 啊
我用的版本是7.01,是不是版本的问题!
 
 
展开全文阅读
剩余:2000