[討論] 想問這題怎用牛頓拉夫生解

看板MATLAB作者 (povertytrap)時間13年前 (2012/04/18 20:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
麻煩各位大大了這題我卡兩天了還是不太懂 老師題目給兩條方程式 u=@(x,y) -x^2+x-y+0.75; v=@(x,y) x^2-y-5*y*x; 我把他們寫成這樣 題目要求姐出兩條方程式的交點 我按照課本教的方法解 function [x,J,f,ea,iter]=funct(x,y) u=@(x,y) -x^2+x-y+0.75; v=@(x,y) x^2-y-5*y*x; del=0.000001; df1dx=(u(x+del*x,y)-u(x,y))/(del*x); df1dy=(u(x,y+del*y)-u(x,y))/(del*y); df2dx=(v(x+del*x,y)-v(x,y))/(del*x); df2dy=(v(x,y+del*y)-v(x,y))/(del*y); J=[df1dx df1dy;df2dx df2dy]; f1=u(x,y); f2=v(x,y); f=[f1;f2]; 先做這個M檔 x=y=1.2 這是結果 J = -1.4000 -1.0000 -3.6000 -7.0000 f = -0.6900 -6.9600 在乎叫牛頓拉夫生檔function [x,f,ea,iter]=newtmult(@func,x0,es,maxit,varargin) newtmult(@func課本教呼叫上面那個黨的檔名,x0,es,maxit,varargin)' 可是出來結果完全不對 >> [x,f,ea,iter]=newtmult(@funct,1.2,1.2,0.0001,100) x = 1.1956 -98.2839 f = -99.4900 -698.5600 ea = 101.2210 iter = 1 請問各位大大我該怎辦@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.145
文章代碼(AID): #1FZh6Yog (MATLAB)