본문 바로가기

컴퓨터/MATLAB을 이용한 알기 쉬운 수치해석

MATLAB을 이용한 알기 쉬운 수치해석) 2장 8번

x = 3;

zero = func(1);
first = func(1) + first_diff_func(1) * (x-1);
second = func(1) +  first_diff_func(1) *(x-1) + second_diff_func(1) *(x-1)/2;
third = func(1) +  first_diff_func(1) + second_diff_func(1)/2 + third_diff_func(1) *(x-1)/6;
fourth = func(1) +  first_diff_func(1) + second_diff_func(1)/2 + third_diff_func(1) *(x-1)/6 + fourth_diff_func(1) * (x-1)/24;
rel = func(x);

zero_error = abs((rel-zero)/rel*100);
first_error = abs((rel-first)/rel*100);
second_error = abs((rel-second)/rel*100);
third_error = abs((rel-third)/rel*100);
fourth_error = abs((rel-fourth)/rel*100);

fprintf("0차 근사값 : %f %% \n", zero_error);
fprintf("1차 근사값 : %f %% \n", first_error);
fprintf("2차 근사값 : %f %% \n", second_error);
fprintf("3차 근사값 : %f %% \n", third_error);
fprintf("4차 근사값 : %f %% \n", fourth_error);

function f = func(x)
f = log(x);
end

function f = first_diff_func(x)
f = 1/x;
end

function f = second_diff_func(x)
f = -1/(x^2);
end

function f = third_diff_func(x)
f = 2 * x^(-3);
end

function f = fourth_diff_func(x)
f = -6*x^(-4);
end