2016-07-31 179 views
0

私は解決するために、この方程式持っている(例えば、F(x、y)を= 0):あなたが他の人を持っているnleqslvまたは別でRのnleqslvパッケージを使用して非線形方程式を解くには?

Rを使用して
library(nleqslv) 
target <- function(x) 
{ 
    z = x[1]/(x[1]+x[2]) 
    y = numeric(2) 
    y[1] <- z*exp(-x[2]*(x[2]+z*(1-exp(-x[1]/z))))-0.00680 
    y[2] <- z/x[2]*(1-exp(-x[2]))-exp(-x[2])*z/x[1]*(1-exp(-x[1]))-3.43164 
    y 
} 

# Usage 
xstart <- c(1,1) 
target(xstart) 
nleqslv(xstart, target, control=list(ftol=.0001, allowSingular=TRUE),jacobian=TRUE,method="Newton") 

を:)

おかげ

+0

-0.00680と-3.43164の数字は何ですか? エラーが発生しました: fn(par、...)のエラー:引数 "y"がありません。デフォルトはありません...同じものを取得していますか? –

+0

これらは数式の一部です:)。 z/y *(1-exp(-x/z))は、f(x、y) y)) - exp(-y)* z/x *(1-exp(-x)))=(a、b)ここで、(a、b)はある特定の値をとることができる。ポストでは、(a、b)=(0.00680; 3.43164)と書いています。 – Gauss

+0

エラーは、関数ターゲットの間違った定義によって引き起こされます... nleqslvがベクトルを使用しています...問題を修正しました。今は試してみると別のメッセージが表示されます:) – Gauss

答えて

0

を私がされていますあなたの機能を試してみてください。次のように2つ目のコメントのようにあなたのコメントでa;b定数を使用するtarget機能を書き直し:

target <- function(x, a=.00680,b=3.43164) 
{ 
    z <- x[1]/(x[1]+x[2]) 
    y <- numeric(2) 
    y[1] <- z*exp(-x[2]*(x[2]+z*(1-exp(-x[1]/z))))-a 
    y[2] <- z/x[2]*(1-exp(-x[2]))-exp(-x[2])*z/x[1]*(1-exp(-x[1]))-b 
    y 
} 

abのデフォルト値を使用すると、最初に指定したものです。 それらを使用すると、不調和なジャコビアムを得るでしょう。

我々は最初の発現のためにそのように

nleqslv(xstart, target, control=list(btol=.01),jacobian=TRUE,method="Newton",a=2,b=1) 

又は

nleqslv(xstart, target, control=list(btol=.01),jacobian=TRUE,method="Newton",a=2,b=2) 

ように、例えばabにいくつかの他の値を与える場合はnleqslvの完全な戻り値が

$x 
[1] 2.4024092 -0.7498464 

$fvec 
[1] 1.332268e-15 2.220446e-16 

$termcd 
[1] 1 

$message 
[1] "Function criterion near zero" 

$scalex 
[1] 1 1 

$nfcnt 
[1] 10 

$njcnt 
[1] 7 

$iter 
[1] 7 

$jac 
      [,1]  [,2] 
[1,] -0.2930082 -1.2103174 
[2,] 0.1801120 -0.6566861 
あります

私は、あなたの関数が間違っているか、またはabには不可能な値を指定していることになります。方法Broydenもうまく機能しているようです。

+0

あなたの例はうまく動作します!ありがとう:)しかし、私はよく指定された問題を取得するために私の方程式を変更する方法を知りません:) – Gauss

+0

この方程式を視覚化する方法はありますか? – Gauss

+0

Rで2Dプロット関数を見つけることができるかどうかを見てください。方程式を変更することはあなた次第です。私は手がかりを得ていない。 – Bhas

関連する問題