Как построить функцию интегралов с верхними пределами как другую функцию в R? - PullRequest
0 голосов
/ 17 апреля 2020

Seawas

Я хотел бы построить интеграл от функции с переменным верхним пределом в R. Однако верхний предел не является «чистой» x-координатой, но расчет этого. Я изо всех сил пытаюсь передать вычисленную координату X моей функции построения графика. Используя ggplot2, я получил это далеко - благодаря Томасу и mnel :

library(ggplot2)

#sample function
f_a   <- function(a) { 2 * a }

#set up integration
int_f <- Vectorize( function( f = f_a , lower = 0, upper , ... ){
            integrate( f , lower , upper , ...)[['value']] } , 'upper' )

#plot it
ggplot( data.frame( b = 0 ) , aes( x = b ) ) + 
    stat_function( fun = int_f , args = list( f = f_a , lower = 0 ) ) +
    xlim( 0 , 4 )

С этим я получаю график интегралов с b в качестве верхних пределов. Дело в том, что мои верхние пределы являются функцией b, скажем: c(b). Мои попытки с отображениями и другими настройками int_f потерпели неудачу так же, как мои запросы здесь на stackoverflow.

Было бы удивительно, если бы кто-нибудь из этого сообщества мог показать мне, как решить эту проблему.

1 Ответ

0 голосов
/ 17 апреля 2020

Узнал сам. Неловко дешевое решение (с c() в качестве функции для верхнего предела):

...

int_f <- Vectorize( function( f = f_a , lower = 0, upper , ... ){
            integrate( f , lower , c(upper) , ...)[['value']] } , 'upper' )
...

Надеюсь, это кому-нибудь поможет!

...