[討論] 最佳化方法解聯立方程式已回收

看板MATLAB作者 (紅)時間14年前 (2011/05/14 13:23), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
小弟的老師教了小弟最佳化解"非"線性方程式的方法 方法如下: function F = myfun(x) F = [2*x(1) - x(2) - exp(-x(1)); -x(1) + 2*x(2) - exp(-x(2))]; 以上建成一個myfun.m的檔案 再開啟一個新的script並且輸入 % an optimization routine. x0 = [-5; -5]; % 初始值 options=optimset('Display','iter'); % Option output [x,fval] = fsolve(@myfun,x0,options) 小弟看不懂為何初始值是輸入[-5;-5]... 然後老師要求我們利用此方法去解"聯立方程式" 題目如下所示 2x1-x2=5 -x1+2x2=-4 (x1的1是下標...x2的2也是下標) 而小弟照著老師上的方法解但是卻出現 Error in ==> fsolve at 180 fuser = feval(funfcn{3},x,varargin{:}); 這個錯誤指令~"~ 不知是否有大大可以伸出援手協助小弟呢 或者可以告知小弟是哪裡錯誤 -- "◢██◣ 看拎北幹死她~ 為什麼..我都請妳吃飯了.. " ,█◥◥◥ ˊ 對不起,聽說胖子 ˋ ◢██◣ ◎ ◎ ◣◢██◣ˊ 的老二比較小.. █◥◥◥ ▉█◥◥◥ PU 吃 賤 ██◣ █◤" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 121.254.127.164

05/14 14:15, , 1F
這種牛頓法解根 起始值要多try 不會只有一個固定的方法
05/14 14:15, 1F

05/14 14:24, , 2F
你應該是檔名打錯了 還有小習慣x(1)改成x(1,1)之類的
05/14 14:24, 2F

05/14 14:24, , 3F
我這裡跑沒問題
05/14 14:24, 3F

05/14 14:30, , 4F
最上面那些是老師上課交的解非線性方程式
05/14 14:30, 4F

05/14 14:31, , 5F
題目是下面2x1-x2=5那兩行..
05/14 14:31, 5F

05/14 14:31, , 6F
可是小弟怎麼輸入都還是錯的,檔名跟x(1)沒打錯
05/14 14:31, 6F

05/14 16:24, , 7F
應該是要把目標函數寫成 abs(F(1,1)-F(2,1))
05/14 16:24, 7F
文章代碼(AID): #1DpX75Ta (MATLAB)