Re: [問題] 處理一階熱方程式(請大家參閱幫忙驗證)已回收

看板MATLAB作者 (幫解MATLAB難題囧)時間16年前 (2009/06/01 05:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
※ 引述《skynice (陽光小天)》之銘言: : 在1-D heat equation中 : 已知邊界條件u=(0,t)=10 , u(1,t)=-10 : 跟起始條件u(x,0)=10cos(x*pi) 0<=x<=1 ,t>0 : 1.要求出理論解 : 2.利用顯式法(explicit method)跟隱式法(implicit method) : 求解並與理論解比較 : 不敢奢望板友幫我解答 : 提醒我在matlab中有甚麼方法可以解 : 給我一個大概的方向 : 感謝 這問題說起來簡單但是實際上挺麻煩的 首先.我個人認為MATLAB內建的PDETOOL拿來解一維熱傳PDE 解出來的東西都不太合常理. 例如溫度上下震盪劇烈還會亂跳.還呈現不連續. 一整個是錯誤解不合物理現象 (一維PDE不適合用有限元素法嗎?工具箱是這種方法的) 我個人是沒有用"有限差分法"(就是原PO提到那兩種方法) 我採用是"Method of Line"法來解(可能有錯歡迎指教) 這邊我解了兩個.主要是在邊界條件上有分別 一個是符合 u(x,0)=10cos(x*pi) 一個是符合 u=(0,t)=10 為了要驗證我的觀念正不正確.還請各位板有幫忙看一下 可能:1.兩個解都是錯的 2.前者對 3.後者對 也請原po幫個忙查證一下(用解析解來看.解析解不難用手解應該ok) ---------------------------------------------------------------- function MOL % 變數定義 % n 分割點數 % dx 分割間距 % ubcl 左邊界 % ubcr 右邊界 % xdim 板位置 % tdim 時間位置 % % 本方法是採用 Method of Line 的數值方法做的 % % global n dx ubcl ubcr n = 50; xdim = linspace(0,1,n); dx = xdim(2)-xdim(1); tdim = linspace(0,1,n); ubcl = 10; ubcr = -10; uic1 = (10*cos(pi*xdim))'; uic2 = 10*ones(n,1); [t1 u1] = ode15s(@odepe,tdim,uic1); [t2 u2] = ode15s(@odepe,tdim,uic2); figure(1) surfc(xdim,tdim,u1) title('Numerical solution computed in Method of Line'); xlabel('Distance x'); ylabel('Time t'); zlabel('u(x,t)') figure(2) plot(tdim,u1(:,1:end)) xlabel('Time t') ylabel('u(x,t)') figure(3) surfc(xdim,tdim,u2) title('Numerical solution computed in Method of Line'); xlabel('Distance x'); ylabel('Time t'); zlabel('u(x,t)') figure(2) plot(tdim,u2(:,1:end)) xlabel('Time t') ylabel('u(x,t)') function f = odepe(t,u) global n dx ubcl ubcr f = zeros(n,1); for i = 1:n-1 f(i) = (1/dx).*(u(i+1)-u(i)); end u(1) = ubcl; u(end) = ubcr; f(n) = (1/dx)*(-10-u(n-1)); ----------------------------------------------------------- 為什麼這麼堅持驗證呢? 我想看看能不能把這個解法確定後. 想辦法拿來解工具箱解出來是錯誤的問題 其實PDE TOOLBOX不太好用(應該說是不好上手) 而且內建模組很固定.要改些專屬的變數根本就很難 而 pdepe 這個解題器解非線性PDE又有很囧的問題 (就是我之前說的亂跳亂飄根本不合物理原則的解) 還麻煩各位先進多多指教.幫小弟看看有沒有錯 弄得好我也來弄個簡易的PDE解題器好了 -- 1.MATLAB programming 2.ASPEN process simulation package 3.FORTRN programming 4.Advance Engineering Mathematics 5.Process Control Theory 6.Chemical Engineering Basic Theory(Kinetic.thermodynamics.transport) 7.Numerical Method and Analysis 8.MATLAB Toolbox.Simulink system basic design -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.9.140.203
文章代碼(AID): #1A8l7lCc (MATLAB)
文章代碼(AID): #1A8l7lCc (MATLAB)