Re: quad 積分的方式已回收

看板MATLAB作者 (juzn)時間17年前 (2009/01/09 19:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《ckjean (BB)》之銘言: : a=0.01;k=2*pi; : for n=1:N+1 : z(n)=(n-1)*L/N; : end : for i=1:N : M(i)=(z(i)+z(i+1))/2; : end : for m=1:N : for n=1:N-1 : f=@(x)exp(-j*k*sqrt((M(m)-x)).^2+a.^2))/(4*pi*sqrt((M(m)-x).^2+a.^2)) 1 23 4 4 32 1? 括號數量有問題 我標了對應的數字 請自己參考你的數學方程式修正 還有 M(m)+x 與 a 如果是m by n的矩陣資料格式 才需要使用.^ 但a應該是1by1的資料 所以直接a^2就可以了 而M(m)+x如果是矩陣資料則後面的除號前也要加點 如果也是單值(看起來應該是)那(M(m)+x)^2就可以了 不過加點不會造成錯誤 : +exp(-j*k*sqrt((M(m)+x).^2+a.^2))/(4*pi*sqrt((M(m)+x).^2+a.^2)); : A(m,n)=quad(f,M(n),M(n+1)) : end : end : 幫DEBUG : ※ 引述《ckjean (BB)》之銘言: : : for i=1:10 : : Z(i)=(i-1)*10 : : end : : for m=1:10 : : f=@(x) 某函式 : : A(m)=quad(f,Z(m),Z(m+1)) : : end : : 請問這樣的積分哪裡有問題呢 一值出錯 在A(m)這列 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.0.181
文章代碼(AID): #19PpeR2U (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #19PpeR2U (MATLAB)