Ältere Kommentare anzeigen
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 Kommentare
darova
am 7 Dez. 2019

hasan damaj
am 7 Dez. 2019
darova
am 7 Dez. 2019
Aha, ok
hasan damaj
am 11 Dez. 2019
darova
am 11 Dez. 2019
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
am 11 Dez. 2019
hasan damaj
am 11 Dez. 2019
Antworten (3)
Image Analyst
am 7 Dez. 2019
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 Kommentare
hasan damaj
am 11 Dez. 2019
Image Analyst
am 11 Dez. 2019
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
am 11 Dez. 2019
Image Analyst
am 11 Dez. 2019
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
am 11 Dez. 2019
hasan damaj
am 11 Dez. 2019
hasan damaj
am 12 Dez. 2019
Hassan Abdullah Saleem
am 12 Okt. 2020
0 Stimmen
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
am 12 Okt. 2020
0 Stimmen
Kategorien
Mehr zu ARM Cortex-A Processors finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!