2016-04-22 4 views
1

ここに私のベクトルです。ベクトルmは、未知の値xで構成されています。私はRで、次の条件のベクトル方程式を解くことができますどのようにRの条件付き記号式を解く

r=c(1, 3, 5) 

p=c(5, 3, 1) 

s=c(1, 3, 5) 

m=c(x, x, x) 

p*(s-m)*(ifelse((s-m)<0, r, 6-r))のベクトルの要素の合計をゼロにするxの値を探したいと思います。

sum(p*(s-m)*(ifelse((s-m)<0, r, 6-r)))=0 

私はrSymPyがこれを処理するかもしれないが、私は、これは、ベクトル方程式のために働くとは思わないと言われました。どのような考えや提案ですか?

実際、「ゴールシーク」を使用してExcelで答えを得ることができましたが、これを解決するためのRコマンドを取得したいと考えています。

+0

ようこそ私たちのサイトに - (私たちの[ヘルプを見てオフトピックここで質問をコーディングのこの種は/ on-topic])、スタックオーバーフローには適切な質問であるようです。他の人が私に同意するなら、あなたのためにこれを移行することができます。 – Silverfish

答えて

0

Excelでは記号ではなく数値計算が行われるため、数値ソリューションが実際にあなたが望むものと仮定します。その場合、それは次のように数値的に解くことができる。

f <- function(x) sum(p*(s-x)*(ifelse((s-x)<0, r, 6-r)))^2 
optimize(f, range(s)) 

を与える:

$minimum 
[1] 2.4667 

$objective 
[1] 3.1554e-30 
+0

本当に役に立ちます。あなたの提案したコードで得られる結果は、Excelから得られる結果と同じです。どうもありがとうございました! – leej