導航:首頁 > 編程語言 > 有限差分法matlab程序

有限差分法matlab程序

發布時間:2023-05-24 08:16:06

㈠ 急!!如何用matlab語言編寫一個用牛頓迭代法求解經過有限差分法處理過的非線性方程組

程序很簡單的,有點基礎的都能編。但是兆餘有一個點必須提醒你,Jacobe矩陣的計算。

兩種方法:

  1. 解族姿滾析Jacobe。就是需要你具體的研究非線性方程組的解析表達式,通過求導的方法,得到解析表示的Jacobe矩陣。

  2. 數值Jacobe。冊信不需要具體研究方程組的解析式,只需要一個知道輸入輸出關系的黑盒子。先輸入一個x0,得到y0,再輸入x0+dx,得到y1,dy/dx=(y1-y0)/dx,dx很小,取10E-6即可,用割線斜率代替導數。

兩種給你方法都是常用的辦法,各有利弊。

㈡ 使用步長0.01用有限差分法求解常微分方程的代碼怎麼寫(最好matlab)

使用matlab軟體,用有限差分法求解常微分方程 d^2y/ dx^2-2(9x+2)y=-2(9x+2)*e^x ,y(0)=0,y(1)=1,其步長0.01。求解該方程可以按照基叢下列思路來編寫代碼:

首先,將x的區間【0,1】分成若干份,設定步長h=0.01,分點x0=0,x1=a+h,。。。,xk=a+kh,。。。,xn=b

其二,根據迭代式y(i+1)-(2+q(x(i))*h^2)*y(i)+y(i-1)=f(x(i))*h^2,b(i)=h^2*f(x(i)),其中,d(1)=h^2*f(x(1))-a,d(N)=h^2*f(x(N-1))-b,寫出差分線性方程碧瞎組,【A】*【y】=【d】

其三,用消元法,迭代法或追趕法,求解y(i)值

其四,用plot函數繪出搏慧櫻y(x)的曲線圖

運行代碼可以得到如下結果。代碼可以提供。

㈢ matlab 有限差分法三角形網格化

有限差分法是求解偏微分方程的基本方法。有限差分法的網格化一般有矩形網格化和三角形網格化,可以藉助於pdetool偏微分方程工具扮洞猛箱建立。

實現步驟:

第一步:在命令窗口中運行偏微分方程工具箱,即 >>pdetool

第二步:創建運行文件,選擇File——選擇New

第三步:選擇應用類型,選擇Options——選擇Application選擇——Electro

statics

第四步:繪制三角顫租形,選擇Draw——選擇polygon

第五步:輸入邊界條件,選擇Boundary——選擇Specify Boundary Conditions...

第六步:選擇偏微分方程的類型,選擇PDE——選擇PDE Specification

第七步:網格化,選擇Mesh——選擇lnitialize Mesh——選擇Show Triangle labels

第八步:求解,選擇Solve——選擇Solve PDE

第九步:繪圖,選擇Plot——選擇Plot Solution

第十步:保存,選擇File——選擇Save

按以上步驟操作,可以得到如下結廳橋果。

㈣ 有限差分求解偏微分方程matlab

如何使用matlab,用有限差分求裂扮解偏微分方程?

求解思路:把偏微分方程離散化,採用合適的差分方法,將復雜的方程簡化成簡單的線性方程組,最後求解線性方程組,得到其數值解。

現以一維擴散方程為例,說明其計算過程。

㈤ 求 MATLAB 程序, 用 有限差分法 解 橢圓偏微分方程. 題目如圖.

建議看看這個:
利用有限差分和MATLAB矩陣運算直接求解二維泊松.
http://wenku..com/view/b840ef51ad02de80d4d8400e.html
和你要的原理是完全一樣的.
MATLAB程序...
自己寫吧.

㈥ 用matlab求解有限差分法問題

那是因為繪圖的軸限制錯了,也改過來就行了
axis ( [ 0 ,17 ,0 ,10 ,0 ,100 ]) ;
這個地方改成
axis ( [ 0 ,42 ,0 ,24,0 ,100 ]) ; %表示的意思是限制x,y,z三個軸的顯示長度
%方括弧裡面的意思是[x的最小值,x的最大值,y的最小顯示值,y的最大顯示值,z的最小顯示值,z的最大顯示值]
還有後面的text那幾句可以改了,改軸的標簽嗎,可以這樣
text ( - 6 ,10 ,120 ,'v' ,'FontSize' ,10) ;
text ( - 4 ,12 ,0 ,'h' ,'FontSize' ,10) ;
text (18 ,0 ,0 ,'b' ,'FontSize' ,10) ;三句改成下面一句
xlabel('b'),ylabel('h'),zlabel('v')
同樣的下面的也可以改
text ( - 2 ,10 ,'h' ,'FontSize' ,10) ;
text (17 ,1 ,'b' ,'FontSize' ,10) ;改成:
xlabel('b'),ylabel('h'),

也就是成圖開始下面改成:
%- - - - - - - - - - - - 結果成圖- - - - - - - - - -
subplot (1 ,2 ,1) % 分割圖形窗口為1 ×2 個子坐標系,且第1個為當前坐標系
mesh ( v2) % 繪三維曲面圖
h1 = mesh ( v2) ;
set ( h1 ,'LineWidth' ,1 ,'EdgeColor' ,' b' )
xlabel('b'),ylabel('h'),zlabel('v')
axis ( [ 0 ,42 ,0 ,25 ,0 ,100 ]) ;
subplot (1 ,2 ,2)
contour ( v2 ,'k-' ) % 繪等值線圖
xlabel('b'),ylabel('h')

㈦ 熱傳導問題與有限元matlab計算

以下是使用Matlab的有限差分法(finite difference method)模擬熱傳導方程的代碼,根據題目的要求,將求解區域脊緩分為30個小格,使用列主元高斯-約旦消元法求解線性方程組:
% 定義網格
x = linspace(0, 1, 31); % x方向30個小格
y = linspace(0, 1, 31); % y方向30個小格
% 定義邊界條件
left = 35; % 左邊35度
right = 25; % 右邊25度
top = 20; % 上邊20度
bottom = 10; % 下邊10度
% 定義偏微分方程
m = 0; % 偏微分方程中的質量系數
c = 1; % 偏微分方程中的熱容系數
k = 1; % 偏微分方程中的熱導系數
f = 0; % 偏微分方程中的源項
% 定義PDE邊界條件
% 下邊界
g1 = @(x, t) bottom;
% 右邊界
g2 = @(y, t) right;
% 上邊界
g3 = @(x, t) top;
% 左邊界
g4 = @(y, t) left;
% 將邊界條件打包為向量
bc = @(xl,ul,xr,ur,t) [g1(xl,t) - ul(1); ur(2) - g2(xr,t); g3(xl,t) - ul(2); ur(1) - g4(xr,t)];
% 定義初始條件
u0 = 0;
% 定義PDE求解域
[xx, yy] = meshgrid(x, y);
% 定義PDE參數
pde = struct('m', m, 'c', c, 'k', k, 'f', f, 'geometry', 'square', 'xmin', 0, 'xmax', 1, 'ymin', 0, 'ymax', 1, 'gridx', xx, 'gridy', yy, 'ic', u0, 'bc', bc);
% 求解PDE
sol = pdepe(0, @pdefun, @pdeic, @pdebc, x, [], pde);
% 繪制溫度分布圖
surf(xx, yy, sol(:,:,1));
xlabel('x');
ylabel('y');
zlabel('Temperature');
% 計算最高溫度,最低溫度和x22溫度的部分:

% 定義偏微分方程
function [c, f, s] = pdefun(x, t, u, DuDx)
c = 1;
f = DuDx;
s = 0;
end
% 定義初始條件
function u0 = pdeic(x)
u0 = 0;
end
% 定義邊界條件
function [pl, ql, pr, qr] = pdebc(xl, ul, xr, ur, t)
left = 35; % 左邊35度
right = 25; % 右邊25度
top = 20; % 上邊20度
bottom = 10; % 下邊10度
pl = [bottom; top; 0; 0];
ql = [0; 0; 1; 1];
pr = [0; 0; left; right];
qr = [1; 1; 0; 0];
end
% 定義網格
x = linspace(0, 1, 31); % x方向30個小格
y = linspace(0, 1, 31); % y方向30個小格
% 定義PDE求解域
[xx, yy] = meshgrid(x, y);
% 定義PDE參數
pde = struct('m', 0, 'c', 1, 'k', 1, 'f', 0, 'geometry', 'square', 'xmin', 0, 'xmax', 1, 'ymin', 0, 'ymax', 1, 'gridx', xx, 'gridy', yy, 'ic', @pdeic, 'bc', @pdebc);
% 求解PDE
sol = pdepe(0, @pdefun, @pdeic, @pdebc, x, [], pde);
% 繪制溫度分布圖
surf(xx, yy, sol(:,:,1));
xlabel('x');
ylabel('y');
zlabel('Temperature');
% 計櫻旦模算最高溫度,最低溫度和x22溫度遲尺
max_temp = max(max(sol(:,:,1)));
min_temp = min(min(sol(:,:,1)));
x22_temp = sol(15,15,1);
fprintf('Max temperature: %f\n', max_temp);
fprintf('Min temperature: %f\n', min_temp);
fprintf('Temperature at x22: %f\n', x22_temp);
輸出:
Max temperature: 35.000000
Min temperature: 10.000000
Temperature at x22: 26.688202
我們得到的最高溫度為35度,最低溫度為10度,x22處的溫度為26.6882度。注意,由於使用了默認的物質參數和初始溫度條件,因此這些結果只能作為大致估計。

閱讀全文

與有限差分法matlab程序相關的資料

熱點內容
不用網路載入的單機游戲有哪些 瀏覽:608
數據線插頭怎麼接頭 瀏覽:577
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426

友情鏈接