%% H2T17R.m Polynomin juurien virheherkkyys, häiriöalttius %{ x^8 ? 36x^7 + 546x^6 ? 4536x^5 + 22449x^4 ? 67284x^3 +118124x^2 ? 109584x + 40320 %} p=[1 -36 546 -4536 22449 -67284 118124 -109584 40320] %{ Kun kirjoitat polynomin kerroinvektoria, muista 0-kertoimet, jos jokin potenssi puuttuu. Tässä nyt ei sitä virheloukkua ole. %} juuret=roots(p) disp('Ahaa, polynomi onkin muodostettu näin:') syms x poly=(x-1)*(x-2)*(x-3)*(x-4)*(x-5)*(x-6)*(x-7)*(x-8) expand(poly) %% Muutetaan x^7:n kerrointa hiukan: q=p; q(2)=-36.001 juuretq=roots(q) disp('Oho, 6. ja 7. juuri hajosivat kompleksiliittoluvuiksi') clear x close all x=linspace(0.5,8.5,500); plot(x,polyval(p,x),'r',x,polyval(q,x),'b') ylim([-800 800]) grid on shg %% Mikä selittää ilmiön? Wilkinsonin polynomin alempi versio. dp=polyder(p) vkerroin=(7^7)/polyval(dp,7) vkerroin*10^(-3) % Kts. tarkemmin Maple-ws: H2T17R.mw ja .pdf %% % publish('H2T17R','pdf')