Re: [討論] 電勢模擬問題

看板MATLAB作者 (prof)時間7年前 (2017/12/11 11:50), 7年前編輯推噓1(101)
留言2則, 1人參與, 7年前最新討論串2/2 (看更多)
※ 引述《knutten (biker)》之銘言: : 大家好, 小弟是matlab新手, 正在努力學matlab中. : 我在一本書看到以下的程式, 但是書上的例子是設定上面的電壓是100V, 兩側和底部的電壓是0V. : 但是我想要模擬成上面電壓1500V, 兩側和底部的電壓是700V, 可是好像得不到答案, : 所以只能將上部取800V, 兩側和底部的電壓是0V, 用壓差來模擬, 請問有沒有什麼方法可以 : 模擬成上面電壓1500V, 兩側和底部的電壓是700V? 這不就FDM? 重新定義一下邊界條件應該就可以了吧? v0=1500;hx=11;hy=9; v00=700; : v1=zeros(hy,hx); : v1(hy,:)=ones(1,hx)*v0; : v1(2:hy-1,2:hx-1)=ones(hy-2,hx-2); %原文上面這行我其實不知道有啥意義 只是代個起始值而已用0和用1應該沒差很多 v2=v00*ones(hy,hx);maxt=1;t=0; %這行這樣才會定義到v2 700V那些邊的邊界條件 : v2(hy,:)=v1(hy,:); : while (maxt>0.1) : for i=2:hy-1 : for j=2:hx-1 : v2(i,j)=(v1(i,j-1)+v1(i,j+1)+v1(i-1,j)+... : v1(i+1,j))/4; : t=v2(i,j)-v1(i,j); : maxt=0; : if(t>maxt) maxt=t; end : end : end : v1=v2; : end : subplot(1,2,1),surf(v2) : axis ([0,11,0,9,1,800]) : subplot(1,2,2), : contour(v2); : hold on; : x=1:1:11;y=1:1:9; : [xx,yy]=meshgrid(x,y); : [Gx,Gy]=gradient(v2,0.6,0.6); : quiver (xx,yy,Gx,Gy,'r'), : hold off -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.174.96 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1512964242.A.7F7.html ※ 編輯: profyang (114.37.174.96), 12/11/2017 11:51:28 ※ 編輯: profyang (114.37.174.96), 12/11/2017 11:52:44

12/17 06:52, 7年前 , 1F
感謝你的回答,FDM沒學過,matlab助教也只教了迴圈,其他
12/17 06:52, 1F

12/17 06:52, 7年前 , 2F
要我們自己google, 所以很多不懂
12/17 06:52, 2F
文章代碼(AID): #1QBW2IVt (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1QBW2IVt (MATLAB)