4 views (last 30 days)

Show older comments

This part is included in a function called myf2(w,k):

function f= myf2(w,k)

i = sqrt(-1);

fm = @(x) (1/sqrt(2*pi))* exp(-x.^2/2);

dfm = @(x) -x.*fm(x);

fun = @(x) dfm(x) / (x-w/k);

w0 = max(imag(w/k),0);

a = -10+w0*i;

b = 10+w0*i;

N = 100;

R = dfm(w/k);

x = linspace(a,b,N+1);

syms wn x

wn = sym(zeros(1, N)); % <------- Something is wrong here

f_int = int(fun, x, a, b);

A = vpa(f_int);

f = k^2 - A - 2*pi*i*R;

return

This is where I call the function:

for ix = 1:Nx

for iy = 1:Ny

z = x(ix) + I*y(iy);

tmp = myf2(z,k);

f(ix,iy) = abs(tmp);

end

end

After this I'm getting an error! Please help me out!

Walter Roberson
on 18 Jun 2020

In some cases you could hope that the singularity is "removable" to permit a Cauchy Principle Value to be calculated. However in cases where the function goes continuously to infinity, the singularity has no hope of being removable unless it is the same sign of infinity on both sides of the singularity. The singularity that I encounter with random data with of the form (expression in x) / (linear expression in x) and that has infinities with different sign as the linear expression becomes 0, so the singularity cannot be removed.

In other words, in the case I encountered, no integration was possible. The "approximately close answer" was undefined.

If you post your revised code and post values for x, y, I, and k so that we can test, then we can have another look.

David Hill
on 17 Jun 2020

Do you have to perform symbolically? Does not look like the integral exists. Why not numerically?

function f= myf2(w,k)

dfm =@(x) -x.*(1/sqrt(2*pi)).* exp(-x.^2/2);

fun =@(x) -x.*(1/sqrt(2*pi)).* exp(-x.^2/2)./ (x-w/k);

w0 = max(imag(w./k),0);

a = -10+w0*1i;

b = 10+w0*1i;

R = dfm(w./k);

A = integral(fun,a,b);

f = k^2 - A - 2*pi*1i*R;

end

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!