Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

load('salmon.

mat')
%%Problem 1

coeff = polyfit(t, salmon, 1);


slope = coeff(1);

save('A1.dat', 'slope', '-ascii')

xfine = 0:1:80;

yfineOrig = polyval(coeff,xfine);

salmon_2k18 = yfineOrig(81)

save('A2.dat', 'salmon_2k18', '-ascii')

n = length(t);
y_predicted = polyval(coeff,t);

rms_error = sqrt(sum((y_predicted - salmon).^2)/n);

save('A3.dat', 'rms_error', '-ascii')

coeff2 = polyfit(t, salmon, 2);

yfine2 = polyval(coeff2,xfine);

salmon_2k18_2 = yfine2(81)

save('A4.dat', 'salmon_2k18_2', '-ascii')

coeff5 = polyfit(t, salmon, 5);

yfine5 = polyval(coeff5,xfine);

salmon_2k18_5 = yfine5(81)

save('A5.dat', 'salmon_2k18_5', '-ascii')

coeff20 = polyfit(t, salmon, 20);

yfine20 = polyval(coeff20,xfine);

salmon_2k18_20 = yfine20(81)

save('A6.dat', 'salmon_2k18_20', '-ascii')

%%Exponential Problem%%
%salmon = y

%y=No*e^(rt)
% ln(y) = ln(No*e^(rt))
%ln(y) = ln(No) + ln(e^(rt))
%ln(y) = ln(No) + rt
%z = ln(y) and A = ln(No)
%z = A + rt
z = log(salmon);
coeffs = polyfit(t, z, 1);
r = coeffs(1);
A = coeffs(2);

No = exp(coeffs(2));

rowVector = [No, r];

save('A7.dat', 'rowVector', '-ascii')

yfine_exp = No * exp(r*xfine);

salmon_exp_2k18 = yfine_exp(81);

save('A8.dat', 'salmon_exp_2k18', '-ascii')

% plot(t, salmon, 'ro');


% hold on
% plot(xfine, yfine_exp);
% hold on
% plot(xfine, yfineOrig, 'k');

%this method only works for exponential functions of this variety

%%fminsearch%%
f = @(v)(rms_error910210(v(1), v(2), v(3), t, salmon)); % v holds a, b , c %@v is wrapper
vmin = fminsearch(f, [.001; -.01; 10]); % plugs guesses into v, from function f, which then goes to rms error
a = vmin(1);
b = vmin(2);
c = vmin(3);

chinookPop = exp(a*(xfine).^2 + b*(xfine) + c);


chinookPop2k18 = chinookPop(81)

save('A9.dat', 'chinookPop2k18', '-ascii')

You might also like