為什麼這篇r雙重積分鄉民發文收入到精華區:因為在r雙重積分這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者hexjacal (黑麻糬)看板Statistics標題[程式] R code 多重積分的問題時...
r雙重積分 在 Horlick Ho 物理治療師 ?? Instagram 的最佳貼文
2020-05-24 05:45:34
🐝🐝Guerlain Bee Garden 蜂蜜樂園🐝🐝 我又出返event 🥰 去左GUERLAIN BEE GARDEN 暢「油 • 花園」 大玩互動遊戲,更到人氣大熱的甜「蜜」攝影館Selfie📸 憑遊戲積分於Check-out專區更可領取GUERLAIN限定禮物🎁,給您雙重滿足!🎈 立即登記...
[軟體程式類別]:
R code
[程式問題]:
多重積分
[軟體熟悉度]:
高(1年以上)
[問題敘述]:
目前要做一個多重數值積分的結果
內層兩個函數
1. f1(v1,y1) 要把 v1 積掉
2. f2(v2,w,y1) 要把 w 積掉
3. 函數 1 & 2 積完後相乘,接著把 y1 積掉
從頭到尾 w 都是 input 定數
積分結果出現了錯誤訊息
"evaluation of function gave a result of wrong length"
[程式範例]:
n1=n2=5;CPU1=CPU2=1
A1=2/sqrt(2*pi/(9*n1))*gamma((n1-1)/2)*(2/(n1-1))^((n1-1)/2)
A2=2/sqrt(2*pi/(9*n2))*gamma((n2-1)/2)*(2/(n2-1))^((n2-1)/2)
A=A1*A2
F1=function(y1)
{
f1=function(v1)
{
exp(-9*n1/2*(v1*y1-CPU1)^2)*(v1^(n1-1))*exp(-(n1-1)/2*v1^2)
}
return(f1)
}
int1=function(y1) {integrate(F1(y1),lower=0,upper=Inf)$value}
F2=function(w,y1)
{
f2=function(v2)
{
exp(-9*n2*(v2*(w+y1)-CPU2)^2/2)*v2^(n2-1)*exp(-(n2-1)/2*v2^2)
}
return(f2)
}
int2=function(w,y1) {integrate(F2(w,y1),lower=0,upper=Inf)$value}
F3=function(w)
{
f3=function(y1)
{
A*int1(y1)*int2(w,y1)
}
return(f3)
}
int3=function(w) {integrate(F3(w),lower=0,upper=Inf)}
先寫 Global,都是一樣的寫法,int1, int2 函數都沒問題。
但 int3 結果就會出毛病,似乎是資料型態的問題,嘗試了一整天
sapply, mapply, Vectorize 等函數,還是無法克服
希望版上能有大大提供點想法
儘管只是個簡單的三變數 x,y,z 積分也可以,感恩~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.108.134