mirror of
https://bitbucket.org/Mattrixwv/octavefunctions.git
synced 2025-12-06 18:53:57 -05:00
136 lines
4.0 KiB
Matlab
136 lines
4.0 KiB
Matlab
%This is a script to do the homework for 3.2
|
|
|
|
%3.1a
|
|
disp('Problem 3.1.a:')
|
|
disp('')
|
|
xValues = [8.1 8.3 8.6 8.7];
|
|
x = 8.4;
|
|
P0Values = [16.94410 17.56492 18.50515 18.82091];
|
|
P1Values = [];
|
|
P2Values = [];
|
|
|
|
for n = 2:size(P0Values)(2)
|
|
P1Values(end + 1) = Nevilles(P0Values(n - 1), P0Values(n), xValues(n - 1), xValues(n), x);
|
|
end
|
|
|
|
for n = 2:size(P1Values)(2)
|
|
P2Values(end + 1) = Nevilles(P1Values(n - 1), P1Values(n), xValues(n - 1), xValues(n + 1), x);
|
|
end
|
|
|
|
P3Values = Nevilles(P2Values(1), P2Values(2), xValues(1), xValues(4), x);
|
|
|
|
for n = 1:size(P0Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') ' = ' num2str(P0Values(n), '%8.8g')])
|
|
end
|
|
|
|
for n = 1:size(P1Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n, '%8.8g') ' = ' num2str(P1Values(n), '%8.8g')])
|
|
end
|
|
|
|
for n = 1:size(P2Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 1, '%8.8g') ' = ' num2str(P2Values(n), '%8.8g')])
|
|
end
|
|
|
|
disp(['P03 = ' num2str(P3Values, '%8.8g')])
|
|
|
|
|
|
|
|
%3.3
|
|
disp('')
|
|
disp('')
|
|
disp('Problem 3.3.a')
|
|
x = 1/2;
|
|
P0Values = [];
|
|
P1Values = [];
|
|
P2Values = [];
|
|
P3Values = [];
|
|
P4Values = [];
|
|
xValues = [-2 -1 0 1 2];
|
|
f = @(x) 3^x;
|
|
for n = 1:size(xValues)(2)
|
|
P0Values(end + 1) = f(xValues(n));
|
|
end
|
|
for n = 2:size(P0Values)(2)
|
|
P1Values(end + 1) = Nevilles(P0Values(n - 1), P0Values(n), xValues(n - 1), xValues(n), x);
|
|
end
|
|
for n = 2:size(P1Values)(2)
|
|
P2Values(end + 1) = Nevilles(P1Values(n - 1), P1Values(n), xValues(n - 1), xValues(n + 1), x);
|
|
end
|
|
for n = 2:size(P2Values)(2)
|
|
P3Values(end + 1) = Nevilles(P2Values(n - 1), P2Values(n), xValues(n - 1), xValues(n + 2), x);
|
|
end
|
|
for n = 2:size(P3Values)(2)
|
|
P4Values(end + 1) = Nevilles(P3Values(n - 1), P3Values(n), xValues(n - 1), xValues(n + 3), x);
|
|
end
|
|
%Print the results
|
|
for n = 1:size(P0Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') ' = ' num2str(P0Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P1Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n, '%8.8g') ' = ' num2str(P1Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P2Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 1, '%8.8g') ' = ' num2str(P2Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P3Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 2, '%8.8g') ' = ' num2str(P3Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P4Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 3, '%8.8g') ' = ' num2str(P4Values(n), '%8.8g')])
|
|
end
|
|
aAnswer = P4Values;
|
|
|
|
|
|
disp('')
|
|
disp('')
|
|
disp('Problem 3.3.b')
|
|
x = 3;
|
|
P0Values = [];
|
|
P1Values = [];
|
|
P2Values = [];
|
|
P3Values = [];
|
|
P4Values = [];
|
|
xValues = [0 1 2 4 5];
|
|
f = @(x) sqrt(x);
|
|
for n = 1:size(xValues)(2)
|
|
P0Values(end + 1) = f(xValues(n));
|
|
end
|
|
for n = 2:size(P0Values)(2)
|
|
P1Values(end + 1) = Nevilles(P0Values(n - 1), P0Values(n), xValues(n - 1), xValues(n), x);
|
|
end
|
|
for n = 2:size(P1Values)(2)
|
|
P2Values(end + 1) = Nevilles(P1Values(n - 1), P1Values(n), xValues(n - 1), xValues(n + 1), x);
|
|
end
|
|
for n = 2:size(P2Values)(2)
|
|
P3Values(end + 1) = Nevilles(P2Values(n - 1), P2Values(n), xValues(n - 1), xValues(n + 2), x);
|
|
end
|
|
for n = 2:size(P3Values)(2)
|
|
P4Values(end + 1) = Nevilles(P3Values(n - 1), P3Values(n), xValues(n - 1), xValues(n + 3), x);
|
|
end
|
|
for n = 1:size(P0Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') ' = ' num2str(P0Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P1Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n, '%8.8g') ' = ' num2str(P1Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P2Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 1, '%8.8g') ' = ' num2str(P2Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P3Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 2, '%8.8g') ' = ' num2str(P3Values(n), '%8.8g')])
|
|
end
|
|
for n = 1:size(P4Values)(2)
|
|
disp(['P' num2str(n - 1, '%8.8g') num2str(n + 3, '%8.8g') ' = ' num2str(P4Values(n), '%8.8g')])
|
|
end
|
|
bAnswer = P4Values;
|
|
|
|
disp('')
|
|
disp('')
|
|
disp('Problem 3.3.c')
|
|
errorA = abs(sqrt(3) - aAnswer);
|
|
errorB = abs(sqrt(3) - bAnswer);
|
|
disp(['The absolute error in part a is ' num2str(errorA, '%8.8g')])
|
|
disp(['The absolute error in part b is ' num2str(errorB, '%8.8g')])
|
|
|
|
clear xValues x P0Values P1Values P2Values P3Values P4Values n aAnswer bAnswer errorA errorB f
|