Will not solution like this be sooo much slower than simple loops?! Short yes, efficient no.
well, I think I was wrong...This solution is slower if the degree of the polynomial is small but much faster if the degree gets higher...solving polynomials of high degree is really slow with ROOTS.
Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
x0y0 = [-2 5];
P = [0.5 3 -5];
y_correct = 4.3093988461280149175163000679048;
tol = 5e-13;
assert(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
|
2 | Pass |
x0y0 = [pi, pi];
P = [10];
y_correct = 6.8584073464102067615373566167205;
tol = 7e-13;
assert(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
|
3 | Pass |
x0y0 = [0.25,50];
P = [1 2 3 4 5];
y_correct = 1.6470039192886012020234097061626;
tol = 5e-13;
assert(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
|
4 | Pass |
x0y0 = [-3 -3];
P = [-2 1];
y_correct = 4.4721359549995793928183473374626;
tol = 5e-13;
assert(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
|
5 | Pass |
x0y0 = [0 5];
P = [1 0 1];
y_correct = 1.9364916731037084425896326998912;
tol = 2e-13;
assert(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
|
6 | Pass |
x0y0 = [-2 -5];
P = [0.5 3 -5];
y_correct = 1.8901381949770695260066523338279;
tol = 2e-13;
(abs(distance2polynomial(P,x0y0)-y_correct) < tol)
ans =
logical
1
|
6280 Solvers
232 Solvers
516 Solvers
Matrix multiplication across rows
176 Solvers
Find the sides of an isosceles triangle when given its area and height from its base to apex
449 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!