У меня есть вопрос, в котором мне предлагается выполнить линейную, квадратичную и кубическую подгонку данных о населении, а затем оценить население в 1915 году. Линейная и квадратичная подгонка работают, однако кубическая, кажется, вызывает ошибку, говорящую мне, что полином плохо обусловлен. График довольно близок к значениям данных и, кажется, хорошо подходит. Что я могу сделать, чтобы исправить это? Код:
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)