Darcy's law
古いコメントを表示
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 件のコメント
darova
2019 年 12 月 7 日

hasan damaj
2019 年 12 月 7 日
darova
2019 年 12 月 7 日
Aha, ok
hasan damaj
2019 年 12 月 11 日
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
2019 年 12 月 11 日
hasan damaj
2019 年 12 月 11 日
回答 (3 件)
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 件のコメント
hasan damaj
2019 年 12 月 11 日
Image Analyst
2019 年 12 月 11 日
What is your input matrix supposed to look like? From your code it looks like you were attempting to set only the outer edges of the matrix. And then your code would do something to set the interior of the matrix (I didn't delve into the algorithm you used for the loop).
hasan damaj
2019 年 12 月 11 日
Image Analyst
2019 年 12 月 11 日
It looks like the first index for H is the column, and second is the row - the opposite as MATLAB. Is that how you understand it?

hasan damaj
2019 年 12 月 11 日
hasan damaj
2019 年 12 月 11 日
hasan damaj
2019 年 12 月 12 日
Hassan Abdullah Saleem
2020 年 10 月 12 日
0 投票
I think I know what is the probelm in your code..you have overlap intry try to inter the boundary by value like this h(1,1) = 8.04
Hassan Abdullah Saleem
2020 年 10 月 12 日
0 投票
カテゴリ
ヘルプ センター および File Exchange で ARM Cortex-A Processors についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!