[討論] quad積分問題已回收

看板MATLAB作者 (ycc01)時間14年前 (2011/05/19 14:22), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/2 (看更多)
小弟是MATLAB新手,目前是看著書學KEY指令, 最近學到積分的dblquad 指令, 習題部分照著前面書中範例KEY,卻出現以下訊息,不是看的很懂?? dblquad('((4*y.^2)+1).^(0.5)',1,2*pi,0,1) ??? Error using ==> inline.subsref Too many inputs to inline function. Error in ==> dblquad>innerintegral at 78 fcl = intfcn(xmin, y(1), varargin{:}); %evaluate only to get the class below Error in ==> quad at 63 y = f(x, varargin{:}); Error in ==> dblquad at 58 Q = quadf(@innerintegral, ymin, ymax, tol, trace, intfcn, ... 但,試別的習題卻又可以算出來 dblquad('4*x.*(y<=log(x))',1,2,0,log(2)) ans = 2.5452 可是如果我只是把函數換成'1',又出現這個訊息 dblquad('1',1,2,0,log(2)) ??? Error using ==> inline.subsref Too many inputs to inline function. Error in ==> dblquad>innerintegral at 78 fcl = intfcn(xmin, y(1), varargin{:}); %evaluate only to get the class below Error in ==> quad at 63 y = f(x, varargin{:}); Error in ==> dblquad at 58 Q = quadf(@innerintegral, ymin, ymax, tol, trace, intfcn, ... 但如果變成用triplequad 指令,函數是'1',卻又可以算出 triplequad('1.*(y<=1-x & z>=x+y & z<=2-x-y )',0,1,0,1,0,2) ans = 0.3333 請問到底問題是什麼??要怎麼KEY才不會有問題?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.138.57

05/20 23:51, , 1F
應該是你的變數少打 像第一個例子 重積分應該要有 x y 變數
05/20 23:51, 1F

05/20 23:51, , 2F
但是你只有打出y而以 試試在函數裡面加 0*x + (...)
05/20 23:51, 2F

05/21 18:29, , 3F
感謝m大 真的跟你說的一樣@@ 問題解決了
05/21 18:29, 3F
文章代碼(AID): #1DrBSJdD (MATLAB)
文章代碼(AID): #1DrBSJdD (MATLAB)