資源描述:
《有限元法課程作業(yè).docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、有限元法課程作業(yè)(二):一維問題的有限元方法一、解題步驟:將原問題的邊界齊次化:1)單元剖分:;2)i=1;3)計算數(shù)值積分:即得單元上的;4)將迭加到總的中;5)若i<=n,則i=i+1并轉(zhuǎn)到底三步;否則繼續(xù)下一步;6)根據(jù)邊界條件調(diào)整(掐頭去尾),即得A和b;7)解線性方程組Au=b,得u從而的。二、程序編寫主程序:function[]=main(n)n=400;%對x的隨機剖分及區(qū)間長度的計算l=abs(rand(1,n-1));fori=1:n-1forj=(i+1):n-1ifl(i)>l(j
2、)l2=l(i);l(i)=l(j);l(j)=l2;endendendfori=1:n-1x(i+1)=l(i);endx(1)=0;x(n+1)=1;fori=1:nh(i)=x(i+1)-x(i);end%一次區(qū)間元法%A的求解fori=1:na(i,1)=1/h(i)+h(i)/3;a(i,2)=-1/h(i)+h(i)/6;a(i,3)=a(i,2);a(i,4)=a(i,1);endfori=1:n-1A(i,i)=a(i,4)+a(i+1,1);endfori=1:n-2A(i,i+1)=
3、a(i+1,2);endfori=2:n-1A(i,i-1)=a(i,3);End%b的求解fori=2:n+1b1(i,i-1)=f1(x(i-1),h(i-1));b1(i,i)=f2(x(i-1),h(i-1));endfori=2:nb2(i)=b1(i,i)+b1(i+1,i);endfori=1:n-1b(i)=b2(i+1);endu=inv(A)*b';fori=2:nun(i)=u(i-1);endun(1)=0;un(n+1)=0;%還原原始的u值uz=un'+x'*(exp(1)-
4、exp(-1));Uz%真解的求解fori=1:n+1u1(i)=exp(x(i))-exp(-x(i))+x(i)*x(i)*exp(x(i))-x(i)*exp(x(i));endu1'%誤差的計算fori=1:n+1e(i)=abs((uz(i)-u1(i))/u1(i)*100);ende'%作圖subplot(1,2,1)plot(x,u1)xlabel('自變量x的范圍');ylabel('函數(shù)值u的取值');title('真解的圖象');gridsubplot(1,2,2)plot(x,u
5、z)xlabel('自變量x的范圍');ylabel('函數(shù)值u的取值');title('有限元法算得的近似解的圖象');Grid兩個子程序編寫:function[y1]=f1(x,h)y1=h*(1/6*(-24*exp(x+h)*h-3*h^2*exp(1)*x+48*exp(x+h)-24*exp(x+h)*x-h^3*exp(1)+3*h^2*exp(-1)*x+h^3*exp(-1)+24*exp(x)*h*x-48*exp(x)-24*exp(x)*h+24*x*exp(x))/h^2);f
6、unction[y2]=f2(x,h)y2=h*(1/6*(48*exp(x+h)*h-24*exp(x+h)*h^2-24*exp(x+h)*x*h-3*h^2*exp(1)*x+3*h^2*exp(-1)*x-2*h^3*exp(1)+2*h^3*exp(-1)+24*exp(x+h)*x-48*exp(x+h)-24*x*exp(x)+48*exp(x))/h^2);三、MATLAB程序運行結(jié)果圖1:理論值與有限元法近似值圖表1:理論值與有限元法近似值表理論值有限元法近似值誤差(100%)理論值有
7、限元法近似值誤差(100%)0000.6680.66800.01440.014400.6850.68500.01720.017200.70450.704500.03030.030300.70740.707400.03550.035500.71360.713600.05080.050800.72960.72970.01370.05230.052300.79080.790800.05610.056100.79340.79350.01260.05750.057500.83570.835700.05920.05
8、9200.84330.843300.05930.059300.84360.843600.06640.066400.8990.89900.06840.06850.14620.9060.90600.07390.073900.90780.90790.01100.08590.085900.92510.925100.09520.095200.9590.95900.10910.109100.9610.96100.11520.115200.96280.9