How to resolve floating point zero error in the following code
Mostrar comentarios más antiguos
for i=1:3
for j=1:3
for k=1:z
p=Q(i,j,k)*(Z(k+1)-Z(k));
q=Q(i,j,k)*(Z2(k+1)-Z2(k));
r=Q(i,j,k)*((Z(k+1))^3-(Z(k))^3);
A(i,j)= A(i,j)+p;
B(i,j)= B(i,j)+q;
D(i,j)= D(i,j)+r;
end
end
end
6 comentarios
Walter Roberson
el 5 de Dic. de 2018
What floating point zero error?
What inputs should we give when we run the code?
Walter Roberson
el 5 de Dic. de 2018
Okay, so what should we be paying attention to?
Your ABD matrix is nearly singular, with rcond about 1e-9 . inv() of it is not going to be all that accurate. You should strive to avoid using inv(), preferring to use \
abd = inv(ABD); R1 = abd*[Nx;Ny;Nxy;Mx;My;Mxy];
would be better as
R1 = ABD \ [Nx;Ny;Nxy;Mx;My;Mxy];
Manish
el 5 de Dic. de 2018
Walter Roberson
el 5 de Dic. de 2018
You are suffering from round-off error. It is normal.
Manish
el 5 de Dic. de 2018
Respuestas (0)
Categorías
Más información sobre Mathematics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!