کد متلب پواسون و گرما با المان محدود
شرح برخی از کار و کد نوشته شده
برنامه نوشته شده در نرم افزار matlab به نام tamrin1.m به صورت زير است:
clc;
clear;
%solve u_xx + u_yy + g(x,y)u = f(x,y);
f=-50,g=0;
توضيح مراحل مختلف حل با توجه به برنامه
1- وارد کردن مقادير داده شده در تمرين جهت ساختن فرمول اصلي:
%solve u_xx + u_yy + g(x,y)u = f(x,y);
f=-50,g=0;
% over the region D = [x0,xf,y0,yf] = {(x,y) |x0 <= x <= xf, y0 <= y <= yf}
D=[-2,2,0,8];
%dx=dy=0.4;
h=0.4;
2- مشخص نمودن تعداد نقاط شبکه بر روي محور x ها و y ها
3- حدس اوليه تابع پتانسيل و مشخص نمودن مقدار خطاي محاسباتي
%inita guess of u(x,y)
U=ones(ny+1,nx+1);
%tolerance =0.0001;
tol=1e-4;
4- اعمال شرايط مرزي در تابع پتانسيل
5- استفاده ار رابطه ژاکوبين در نوشتن رابطه اپديت پتانسيل با توجه به معادلات بدست آمده از روش المان محدود FD
6- اعمال شرط توقف با استفاده از خطاي اندازه گيري
7- رسم تابع پتانسيل:
8- خروجي به صورت زير نشان داده مي شود
برنامه نوشته شده در نرم افزار matlab به نام tamrin2.m
توضيح مراحل مختلف حل با توجه به برنامه
1- وارد کردن مقادير داده شده در تمرين جهت ساختن فرمول اصلي
2- مشخص نمودن تعداد نقاط شبکه بر روي محور x ها و t ها
3-محاسبه مقاديرr و W با توجه به روابط
4- اعمال شرايط مرزي در تابع معادله نفوذ
5-محاسبه مقادير اوليه نقاط تقاطع شرايط مرزي
%define between node
U(1,1)=(100+0)/2;
U(11,1)=(100+0)/2;
6-گسسته سازي با توجه به روش كرانك–نيكلسون و اپراتور تفاضلي مرکزي
با توجه به روابط زير مي بينيم که ماتريس ضرايب مجهولات A ماتريسي ثابت است ولي ماتريس معلومات بر اساس مرحله k ام متغيير است به طور کلي براي حل اين معادله بايد ماتريس معلومات در هر مرحله آپديت شده و سپس بر اساس حل شده و مقادير جديد جايگزين گردد.
نکته مهم در حل معادله جهت اپديت ماتريس معلومات از تابع sor1.m استفاده شده است .
7-رسم مقادير در k=20,k=30
خروجي به صورت زير نشان داده مي شود