2017-10-15 12 views
0

私はxがnで設定された値までの任意の正の整数になる関数を最小限に抑えるxの値を探しています。例えば以下の式、Rを使用して方程式を最小にする値を見つけるR

F(X)= xcos(Y-X^2)nおよびyは& X {1,2、...、N}

を設定することができる値である

最適化機能で試してみましたが、どこにも見当たりません。

これは本当に基本的な質問である場合はお詫び申し上げます。私はRの理解が大きくないので、私はちょうど始めています。

おかげ

答えて

1

nが非常に大きい場合を除き、行うには自然なことだけで、関数値のベクトルを計算し、その最小値を見つけるためにminを使用し、それが発生した場所を見つけるためにwhichを使用することです:

> n <- 100000 
> y <- 12345 
> x <- 1:n 
> v <- x*cos(y*x) 
> which(v == min(v)) 
[1] 99986 
> v[99986] 
[1] -99979.1 

f(x)はベクトル化されていない場合、あなたはvを定義する際にsapplyを使用しなければならないでしょう:

v <- sapply(x,f) 

nが大きい場合は、上記の方法が適切でない可能性があります。 fに特別な前提がなければ、それ以上の選択肢はありません。ユニークなローカル分(あなたが求めるグローバルな分でもあります)があった場合、二分法を使うことができます。また、[1,n]に実数を最小化してから整数に丸めるようなこともできます。これは、合理的に飼いならされた人にとっては、妥当なヒューリスティックである。f(x)

関連する問題