Ich habe eine Frage mich zu fragen, lineare, quadratische und kubische fit für Bevölkerungsdaten zu tun, dann schätzen die Bevölkerung im Jahr 1915. Die lineare und quadratische fits arbeiten, aber die kubische scheint einen Fehler zu erhöhen mir zu sagen, das Polynom ist schlecht konditioniert. Die Grafik ist ziemlich nah an den Datenwerten und scheint eine gute Anpassung zu sein. Was kann ich tun, um dies zu beheben? Der Code ist:Matlab - Schlecht konditionierte Polynom
clear;
clc;
close all;
year = [1815,1845,1875,1905,1935,1965];
population = [8.3,19.7,44.4,83.2,127.1,190.9];
rlinear = polyfit(year,population,1);
rquadratic = polyfit(year,population,2);
rcubic = polyfit(year,population,3);
newTime = linspace(1815,1965,100);
vrlinear = polyval(rlinear,newTime);
vrquadratic = polyval(rquadratic,newTime);
vrcubic = polyval(rcubic,newTime);
subplot(2,2,1)
plot(year,population,'ob',newTime,vrlinear)
xlabel('Year')
ylabel('Population (millions)')
title('Year vs. US population')
subplot(2,2,2)
plot(year,population,'ob',newTime,vrquadratic)
xlabel('Year')
ylabel('Population (millions)')
title('Year vs. US population')
subplot(2,2,3)
plot(year,population,'ob',newTime,vrcubic)
xlabel('Year')
ylabel('Population (millions)')
title('Year vs. US population')
estimate = polyval(rquadratic,1915);
fprintf('The estimated population in the year 1915 is %d million. \r',estimate)