MATLAB Answers

Darcy's law

15 ビュー (過去 30 日間)
hasan damaj
hasan damaj 2019 年 12 月 7 日
Commented: hasan damaj 2019 年 12 月 12 日
clc
clear
% Laplace equation
% Define the length of the grid
L = 5 ;
% Define the Width of the grid
B = 5 ;
nx = 4 ;
ny = 4 ;
dx = 100;
dy = 100;
h=zeros(nx,ny);
amax = 0;
% boundry conditions
h(1,:) = [ 8.04 , 7.68 , 7.19 , 6.82 ];
h(nx,:) = [ 8.53 , 8.41 , 8.33 , 8.29 ];
h(:,1) = [ 8.04 , 8.18 , 8.36 , 8.53 ];
h(:,ny) = [ 6.82 , 7.56 , 7.99 , 8.29 ];
while amax <= 0.01
for j = 2 : nx-1
for i = 2 : ny-1
oldval = h(i,j);
h(i,j) = ( h(i-1,j) + h(i+1,j) + h(i,j-1) + h(i,j+1)/4) ;
e = abs(h(i,j)) - oldval;
if e > amax
amax = e;
end
end
end
end
h
I NEED TO GET TO THE FOLLOWING RESULT
8.04 8.18 8.36 8.53
7.68 7.93 8.19 8.41
7.19 7.68 8.05 8.33
6.82 7.56 7.99 8.29
Can you suggest for me the correction and thank you :)

  7 件のコメント

表示 4 件の古いコメント
darova
darova 2019 年 12 月 11 日
Did you try to divide all elements? NOt only last one
h(i,j) = ( h(i-1,j) + h(i+1,j) + h(i,j-1) + h(i,j+1))/4 ;
hasan damaj
hasan damaj 2019 年 12 月 11 日
the equation is correct sir..
hasan damaj
hasan damaj 2019 年 12 月 11 日
the while condition is not working with me

サインイン to comment.

件の回答 (1)

Image Analyst
Image Analyst 2019 年 12 月 7 日
You're setting up your boundary conditions incorrectly. You're overwriting the corners with different numbers. I think maybe you want this:
% Initialize boundary conditions:
h(1,:) = [ 8.04 , 7.68 , 7.19 , 8.53];
h(end,:) = [6.82 , 7.56 , 7.99 , 8.29 ];
h(2:3,1) = [7.68;7.19];
h(2:3,end) = [8.41; 8.33];
h
% Here h should be
% 8.04 8.18 8.36 8.53
% 7.68 0 0 8.41
% 7.19 0 0 8.33
% 6.82 7.56 7.99 8.29
Adapt as needed.

  7 件のコメント

表示 4 件の古いコメント
hasan damaj
hasan damaj 2019 年 12 月 11 日
correct sir i know about this :)
hasan damaj
hasan damaj 2019 年 12 月 11 日
but the values of inner index are zeros after running the code..
hasan damaj
hasan damaj 2019 年 12 月 12 日
how do i edit it to reach my results and thank you

サインイン to comment.

サインイン してこの質問に回答します。

製品


リリース

R2019a

Translated by