how "fplot" works?

8 次查看(过去 30 天)
Luigi Stragapede
Luigi Stragapede 2020-5-18
评论: dpb 2020-5-18
I have a function which depends on a particular variable, that is T(theta) where the variable is theta. Then, I plotted the function T(theta) with "fplot".
I want to know: which is the frequency of theta with which the fuction T is plotted? I suppose that Matlab consider a lot of theta and compute T for each of these theta.
  1 个评论
dpb
dpb 2020-5-18
Just read the documentation...
fplot(f) plots the curve defined by the function y = f(x) over the default interval [-5 5] for x.
It sets the number of points internally; not sure the heuristics it uses but the difference in x-values over a default range isn't identical so it's not just linspace(x1,x2,N). But,it's not trivially obvious just where the algorithm is buried in a very quick look at the m-file.
A trivial plot returned 57 for the number of points in X|YData arrays....interesting choice...

请先登录,再进行评论。

回答(1 个)

Ameer Hamza
Ameer Hamza 2020-5-18
编辑:Ameer Hamza 2020-5-18
fplot does not use fixed mesh spacing. It adaptively calculates the distance between mesh points (probably using derivates) of the function. See the parameter MeshDensity: https://www.mathworks.com/help/releases/R2020a/matlab/ref/fplot.html#bu6xntj-1_sep_shared-MeshDensity. By default, it is 23, but MATLAB usually uses a higher number of points for a smoother curve. The algorithm to adaptively calculate the mesh point is not provided, but you can find out the x-values and y-values of points using the following statements
syms x
y = x.^2*sin(x);
f = fplot(y)
f.XData
f.YData
  1 个评论
Walter Roberson
Walter Roberson 2020-5-18
Furthermore, fplot has code to attempt to find discontinuities even if they are at a finer spacing than the adaptive mesh would suggest.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by