Re: [問題] 如果方程式裡有常態分配函數 該怎麼解?已回收

看板MATLAB作者時間15年前 (2010/05/14 19:36), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串3/3 (看更多)
嗯...大家好 我是原發問者 首先 先謝謝大家熱心的解答^^ 其實我原來的式子應該是 P(0,Ti)*0.25*Bl(K,Fi(0),Vi) ,i從4到7累加起來等於一個已知值 其中Bl(K,Fi(0),Vi)=Fi(0)*N(d1(i))-K*N(d2(i)) ==> 最主要 要解Vi kay大 嗯...因為我算是4個Bls相加 不是單獨一個式子 所以不知道你提供的方法能不能用>"< 不過還是謝謝你 maple大 我有照你的方法做 但還是弄不出來 跑程式時也出現錯誤 後來有詢問其他人 由於我的未知數在累積常態分配函數裡面 可能不能用solve的方法下去算 他有提供我一個方法(不過他是有兩條方程式): ============================================================================= 在主程式裡: %% 先打上已知參數值 a = 1; b = 2; c = 3; d = 4; e = 5; %% option = optimset('Display','off','Tolfun',1.e-8,'TolX',1.e-8); [x,resnorm] = lsqnonlin(@(x) fun(x,a,b,c,d,e) ,[0 0],[0 0],[1 1],option); %初始 %下限 %上限 % x 是要求的兩個未知數 ----------------------------------------------------------------------------- 另外再寫一個M檔: function F=fun(x,a,b,c,d,e) F(1) = a-b*(1-exp(c)-x(2); (式子僅為舉例) F(2) = e+c*d*(exp(x(1)*a); (式子僅為舉例) ============================================================================= 不過不知道為什麼 在跑下面這行時 [x,resnorm] = lsqnonlin(@(x) fun(x,a,b,c,d,e) ,[0 0],[0 0],[1 1],option); 他出現 Error: "identifier" expected, "(" found. >"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.16.188

05/14 20:25, , 1F
可以參考一下zupo大的結構型式 fun不是這樣寫
05/14 20:25, 1F

05/14 22:19, , 2F
嗯~謝謝 程式可以跑出值 不過答案我還在check(有點怪= =)
05/14 22:19, 2F

05/14 22:52, , 3F
fun中括弧檢查一下有沒有對稱
05/14 22:52, 3F

05/14 23:37, , 4F
參考了zupo大的寫法 已經可以算出值來 只是還有個小問題
05/14 23:37, 4F

05/14 23:38, , 5F
如果我寫[x]= lsqnonlin(@fun,x0)x0的大小似乎決定x的值
05/14 23:38, 5F

05/14 23:39, , 6F
的大小 而且差異頗大 請問x0是指x的初始值嗎?
05/14 23:39, 6F

05/14 23:40, , 7F
如果是的話 你不知道x多少 怎麼知道他大概是介在哪裡?
05/14 23:40, 7F

05/14 23:40, , 8F
或者有其他解釋? 謝謝大家
05/14 23:40, 8F

05/15 01:32, , 9F
可以用for n=0:1e-2:1 把結果全部存起來 看哪個初值合理
05/15 01:32, 9F
文章代碼(AID): #1BxJMhcF (MATLAB)
文章代碼(AID): #1BxJMhcF (MATLAB)