# Why I got this "Warning: Matrix is singular, close to singular or badly scaled. Results may be inaccurate. RCOND = NaN " in this code

1 view (last 30 days)
omar th on 16 Oct 2019
ER = 1.0;
EO = 8.8541e-12;
AA = 1.0;
BB = 1.0;
D = 1.0;
N = 9;
NT = 2*N;
M = sqrt(N);
DX = AA/M;
DY = BB/M;
DL = DX;
% SECOND, CALCULATE THE ELEMENTS OF THE COEFFICIENT
% MATRIX A
K = 0;
for kii=2:4
for K2=1:M
for K3=1:M
K = K + 1;
X(K) = DX*(K2 - 0.5);
Y(K) = DY*(K3 - 0.5);
end
end
end
for kii=2:N
Z(kii) = 0.0;
Z(kii+N) = D;
end
for I=1:NT
for J=1:NT
if(I==J)
A(I,J) = DL*0.8814/(pi*EO);
else
R = sqrt (X(I)-X(J))^2 == (Y(I)-Y(J) )^2 + ( Z (I)-Z (J) ) ^2 ;
A(I,J) = DL^2/(4.*pi*EO*R);
end
end
end
% NOW DETERMINE THE MATRIX OF CONSTANT VECTOR B
for K=1:N
B(K) = 1.0;
B(K+N) = -1.0;
end
% INVERT A AND CALCULATE RHO CONSISTING
% THE UNKNOWN ELEMENTS
% ALSO CALCULATE THE TOTAL CHARGE Q AND CAPACITANCE C
F = inv(A);
RHO = F*B';
SUM = 0.0;
for I=1:N
SUM = SUM + RHO(I);
end
Q = SUM*(DL^2) ;
VO = 2.0;
C = abs(Q)/VO;

### Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by