[Scilab-users] improve accuracy of roots
Federico Miyara
fmiyara at fceia.unr.edu.ar
Sat Jan 12 07:52:05 CET 2019
Denis,
I've found the correction here,
https://en.wikipedia.org/wiki/Newton%27s_method
It is useful to accelerate convergence in case of multiple roots, but I
guess it is not valid to apply it once to improve accuracy because of
the risk of overshoot.
Regards,
Federico Miyara
On 10/01/2019 10:32, CRETE Denis wrote:
> Hello,
> I tried this correction to the initial roots z:
>
> z-4*(1+z).^4 ./([ones(z),z,z.^2,z.^3]*(C(2:5).*(1:4))')
> ans =
>
> -1. - 1.923D-13i
> -1. + 1.189D-12i
> -1. - 1.189D-12i
> -1. - 1.919D-13i
>
> // Evaluation of new error, (and defining Z as the intended root, i.e. here Z=-1):
> z2=z-4*(z-Z).^4 ./([ones(z),z,z.^2,z.^3]*(C(2:5).*(1:4))')
> z2 - Z
> ans =
>
> 2.233D-08 - 1.923D-13i
> -2.968D-08 + 1.189D-12i
> -2.968D-08 - 1.189D-12i
> 2.131D-08 - 1.919D-13i
>
> The factor 4 in the correction is a bit obscure to me, but it seems to work also for R=(3+p)^4, again with an accuracy on the roots of a ~2E-8.
>
> HTH
> Denis
>
> -----Message d'origine-----
> De : users [mailto:users-bounces at lists.scilab.org] De la part de Federico Miyara
> Envoyé : jeudi 10 janvier 2019 00:32
> À : users at lists.scilab.org
> Objet : [Scilab-users] improve accuracy of roots
>
>
> Dear all,
>
> Consider this code:
>
> // Define polynomial variable
> p = poly(0, 'p', 'roots');
>
> // Define fourth degree polynomial
> R = (1 + p)^4;
>
> // Find its roots
> z = roots(R)
>
> The result (Scilab 6.0.1) is
>
> z =
>
> -1.0001886
> -1. + 0.0001886i
> -1. - 0.0001886i
> -0.9998114
>
> It should be something closer to
>
> -1.
> -1.
> -1.
> -1.
>
> Using these roots
>
> C = coeff((p-z(1))*(p-z(2))*(p-z(3))*(p-z(4)))
>
> yield seemingly accurate coefficients
> C =
>
> 1. 4. 6. 4. 1.
>
>
> but
>
> C - [1 4 6 4 1]
>
> shows the actual error:
>
> ans =
>
> 3.775D-15 1.243D-14 1.155D-14 4.441D-15 0.
>
> This is acceptable for the coefficients, but the error in the roots is
> too large. Somehow the errors cancel out when assembling back the
> polynomial but each individual zero should be closer to the theoretical
> value
>
> Is there some way to improve the accuracy?
>
> Regards,
>
> Federico Miyara
>
>
>
>
> ---
> El software de antivirus Avast ha analizado este correo electrónico en busca de virus.
> https://www.avast.com/antivirus
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
>
>
More information about the users
mailing list