Plot conflicts with mathematical calculation

1 view (last 30 days)
Yumeng Yin
Yumeng Yin on 26 Apr 2022
Commented: Yumeng Yin on 26 Apr 2022
I have a model function shown as below:
F=((b.*A-(x-a).*B)./((x-a).^2+b^2-A^2-B^2))+e;
From the mathematical calculation, I calculate its first derivative, and get [B(x-a-bA/B)^2-(b^2-B^2)(A^2+B^2)/B]/[(x-a)^2+b^2-A^2-B^2]^2,
so if b^2>B^2 and B>0,then the first derivative has the possibility to be zero, which gives the extreme points. However, if I set the parameters to be b<B and B>0, I can still get maximum and minimum values shown below.
I am not sure what mistakes I make. Another point is that if I set the range to be (0,2000,50000) and then set it to be (1000,1500,12500), it is not a zoomed-in picture as what I would expect. Actually the values change a lot, which is shown below.
Thanks a lot for all the advice. Below is my script. Thanks.
a=2000;
b=700;
A=800;
B=790;
e=10;
x=linspace(0,2000,50000);
F=((b.*A-(x-a).*B)./((x-a).^2+b^2-A^2-B^2))+e;
plot(x,F)

Accepted Answer

DGM
DGM on 26 Apr 2022
Edited: DGM on 26 Apr 2022
There are two poles. The function is undefined when the denominator is zero. The only reason it looks like the extrema vary is simply an artifact of the discrete locations at which the function is being evaluated.
If you evaluate the function at the exact location (at least as close as we can get with FP rounding), you'll get a good illustration:
a=2000;
b=700;
A=800;
B=790;
e=10;
% evaluate F at the calculated location
x = a - (A^2 + B^2 - b^2)^(1/2); % 1120.17
% x = a + (A^2 + B^2 - b^2)^(1/2); % 2879.83
F = ((b.*A-(x-a).*B)./((x-a).^2 + b^2 - A^2 - B^2)) + e
F = Inf
x = x+eps(x); % make the smallest possible step to the right
F = ((b.*A-(x-a).*B)./((x-a).^2 + b^2 - A^2 - B^2)) + e
F = -2.6952e+15
What are the maximum and minimum values? They're the same as they are at every sort of singularity. They're +Inf and -Inf. Does it really matter what the extrema are in that vicinity?
  5 Comments
Yumeng Yin
Yumeng Yin on 26 Apr 2022
Thanks a lot, yes, I agree with you. After carefully adjusting the parameters, I can get the s-shape as what I expect. Thank you both.

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!