mirror of
https://bitbucket.org/Mattrixwv/octavefunctions.git
synced 2025-12-06 18:53:57 -05:00
64 lines
2.2 KiB
Matlab
64 lines
2.2 KiB
Matlab
%This is a script to do the homework for 3.1 problem1
|
|
|
|
pkg load symbolic;
|
|
syms x;
|
|
x_list = [0, 0.6, 0.9];
|
|
xValue = 0.45;
|
|
|
|
%Part a
|
|
y_list = cos(x_list);
|
|
f = cos(x);
|
|
disp('a:')
|
|
[P01, P12, P02] = LagrangePolynomialSymbolic(x_list, f);
|
|
fEval = double(subs(f, xValue));
|
|
pEval = double(subs(P01, xValue));
|
|
disp('Error:')
|
|
disp(['|f(x) - P01(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
pEval = double(subs(P02, xValue));
|
|
disp(['|f(x) - P02(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
|
|
%Part b
|
|
y_list = sqrt(1 + x_list);
|
|
f = sqrt(1 + x);
|
|
disp('')
|
|
disp('')
|
|
disp('b:')
|
|
[P01, P12, P02] = LagrangePolynomialSymbolic(x_list, f);
|
|
fEval = double(subs(f, xValue));
|
|
pEval = double(subs(P01, xValue));
|
|
disp('Error:')
|
|
disp(['|f(x) - P01(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
pEval = double(subs(P02, xValue));
|
|
disp(['|f(x) - P02(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
|
|
%Part c
|
|
y_list = log(x_list + 1);
|
|
f = log(x + 1);
|
|
disp('')
|
|
disp('')
|
|
disp('c:')
|
|
[P01, P12, P02] = LagrangePolynomialSymbolic(x_list, f);
|
|
fEval = double(subs(f, xValue));
|
|
pEval = double(subs(P01, xValue));
|
|
disp('Error:')
|
|
disp(['|f(x) - P01(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
pEval = double(subs(P02, xValue));
|
|
disp(['|f(x) - P02(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
|
|
%Part d
|
|
y_list = tan(x_list);
|
|
f = tan(x);
|
|
disp('')
|
|
disp('')
|
|
disp('d:')
|
|
[P01, P12, P02] = LagrangePolynomialSymbolic(x_list, f);
|
|
fEval = double(subs(f, xValue));
|
|
pEval = double(subs(P01, xValue));
|
|
disp('Error:')
|
|
disp(['|f(x) - P01(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
pEval = double(subs(P02, xValue));
|
|
disp(['|f(x) - P02(x)| = |' num2str(fEval, '%9.9g') ' - ' num2str(pEval, '%9.9g') '| = ' num2str(abs(fEval - pEval), '%9.9g')])
|
|
|
|
%Cleanup your variables
|
|
clear P01 P12 P02 f fEval pEval x xValue x_list y_list
|