How can I plot this function such as all values of |f(1/z)| be more clear and how can I plot the cosine of the phase of this function ?

2 vues (au cours des 30 derniers jours)
When I plot this function (thanks for every help).
f(1/z) = (0.1000 -0.3000i)z^-1 + (0.2121-0.0008i)z^-2 + (-0.9000-0.0010i)z^-3
I want to study time evolution of this functions, but I have got from its figure that:
1-the |f(1/z)| seems to take zero every where exept at z=o when it goes to infiniy, even when I tried to change the values of z , I always get the same graph
My questions are:
1:How can I plot this figure such that all values of z in the plane appeare more clear to enable me to study its movement over time?
2- How can I plot the cos for the phase of f(1/z) to get more cleare plotting of the phase of this function?
p1=[(0.9000+0.0010i) (0.2121-0.0008i) (0.1000 -0.3000i)];
This is the figure of |f(1/z)| and the phase of f(1/z)
I used this link:
re_z = -6.005:.01:6.005;
im_z= -6.005:.01:6.005;
[re_z,im_z] = meshgrid(re_z,im_z);
z = re_z + 1i*im_z;
xlabel('x')
ylabel('y')
f_of_1_over_z_result = polyval(p1,1./z);
figure();
subplot(2,2,3)
surf(re_z,im_z,abs(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('|f(1/z)|')
xlabel('Z_R')
ylabel('Z_I')
subplot(2,2,4)
surf(re_z,im_z,angle(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('phase of f(1/z)')
xlabel('Z_R')
ylabel('Z_I')
grid on
I appriciate any help.

Réponse acceptée

Benjamin Kraus
Benjamin Kraus le 8 Juil 2022
It looks like the nearly infinite value in your data is drowning out the remaining data. You can fix this by changing the z-limits and color limits, using the zlim and caxis commands.
For example:
% Prepare the data for plotting
p1=[(0.9000+0.0010i) (0.2121-0.0008i) (0.1000 -0.3000i)];
re_z = -6.005:.01:6.005;
im_z= -6.005:.01:6.005;
[re_z,im_z] = meshgrid(re_z,im_z);
z = re_z + 1i*im_z;
f_of_1_over_z_result = polyval(p1,1./z);
% Create first picture
nexttile
surf(re_z,im_z,abs(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('|f(1/z)|')
xlabel('Z_R')
ylabel('Z_I')
zlim([0 4]) % Adjust this value as needed
caxis([0 4]) % Adjust this value as needed
%%
nexttile
surf(re_z,im_z,angle(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('phase of f(1/z)')
xlabel('Z_R')
ylabel('Z_I')
grid on
  9 commentaires
Benjamin Kraus
Benjamin Kraus le 15 Août 2022
To expand on @Torsten's answer: The doc page for polyval explains the input to polyval:
In the first case (without the 0) you have three elements in your vector, which defines a quadratic polynomial (n==2) and the polynomial becomes:
In the second case (with the 0) you have four elements in your vector, which defines a cubic polynomial (n==3) and the polynomial becomes:
Because equals 0, that reduces to
But, you can clearly see the first element of the vector is treated significantly differently with and without the zero.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by