How can I efficiently mesh 2D lines in MATLAB

2 次查看(过去 30 天)
I have created a 2D mesher (for lack of a better word?). Its useage is as follows:
xmin = -pi/2;
xmax = +pi/2;
numx = 8; % desired number of points for output distribution
funx = @(x) sin(x); % example function to mesh
xq = varspace(funx,xmin,xmax,numx); % optimally sampled domain
xq =
-1.5708 -1.2809 -0.9157 -0.5130 0.5028 0.9363 1.2368 1.5708
plot(xq,funx(xq,'rs-')) % plot of sin(x) with variable spacing
I like this example because it illustrates how sin(x) is very linear at x=0 so there is no need to sample this region as much as near the endpoints in the domain.
For the time being, I've accomplished this method of variably sampling x by generating a relative spacing array and tweaking with :
dx = fminsearch(@(m) err(m),ones(1,numx)); diff(xq) == dx
so as to minimize the error between the original @funx and an interpolated interp1(xq,funx(xq),...).
In 2D, this procedure doesn't take forever but I'm wondering if there are resources to accomplishing this task in a more deterministic way. Computing f''(x) and sampling based on this proportion seems like a reasonable solution but I'm betting this question has been answered before, I just can't find the correct phrase to describe it.
  3 个评论
RobF
RobF 2018-1-23
Hello Alexander,
could you please be a little more specific on what you want to achieve? Additionally, I cannot find the command "varspace" in the documentation - is this a special function?

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Direct Search 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by