Как эффективно найти границу двумерной функции? - PullRequest
0 голосов
/ 28 августа 2018

Я хотел бы написать функцию, которая принимает в качестве аргумента функцию двух переменных f(x, y) и возвращает другую функцию f(x), которая возвращает наибольшее значение y, так что некоторый предикат p(f(x, y)) удовлетворяется. Например, я хотел бы знать самое большое y, где f(x,y) > 0.

Например,

# Given:
f <- function(x, y) ifelse(y <= x^2 & x > 0, 1, 0)

# Then:
g <- function(fn, pred) ...
g(f, function(y) > 0)(1) # => 1
g(f, function(y) > 0)(2) # => 4
g(f, function(y) > 0)(3) # => 9
# etc.

Я знаю верхнюю и нижнюю границы для x и y, но в остальном я ничего не знаю априори о функции f, за исключением того, что она гладкая и непрерывная, за исключением границы. Ну, на самом деле я знаю, что это регрессионное соответствие из mgcv::gam: я пытаюсь проследить контур функции и выдать объект функции из него в качестве входных данных для другой функции.

stat_contour в ggplot2, кажется, делает что-то подобное из меша для рисования контуров. Я думал, может быть, это может предложить путь вперед, но я не уверен. Могу ли я сделать лучше, чем разделили?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...