Soru 1
$x^{5} = 83$ sayısının çözümünü 6. basamağa kadar hassas olarak bütün metotlarla çözümleyiniz.
Newton - Raphson Metodu ile Çözüm
İlk olarak hata tanımlaması ϵ yapılır. Eğer ϵ 1E- 6 sayısından küçük ise döngü durdurulur. İlk değer olarak x=1 değerini verelim.
format shortG
clc
%% Başlangıç
f = @(x) x^5 - 83;
f_prime = @(x) 5.*(x^4);
f_prime_prime = @(x) 20*(x^3);
% İlk değer olarak x_current = 1 olsun.
x_current = 1;
counter = 1;
while (true)
x_next = x_current - (f(x_current)/f_prime(x_current));
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Newton’un Değiştirilmiş Metodu
clear epsilon counter x_current x_next
% İlk değer olarak x_current = 1 olsun.
x_current = 1;
counter = 1;
while (true)
u_x = f(x_current) / f_prime(x_current);
u_prime_x = 1 - (f(x_current) * f_prime_prime(x_current) / (f_prime(x_current))^2);
x_next = x_current - (u_x / u_prime_x);
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Secant Metodu
Bu metotta iki adet başlangıç değeri kullanacağız. İlk başlangıç değeri olarak $x_0$=1 ve $x_{-1}$=2 değerlerini kullanacağız.
clear epsilon counter x_current x_next
% İlk değer olarak x_current = 1, x_previous = 2 olsun.
x_current = 1;
x_previous = 2;
counter = 1;
while (true)
x_next = x_current - ((f(x_current)*(x_current - x_previous)) / (f(x_current) - f(x_previous)));
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Soru 2
$f(x) = x^2 - 2e^{-x} \times x^3 - e^{-3x}$denkleminin köklerini $x_0$=1 ve $x_{-1}$=2 başlangıç değerlerinde bütün metotlarla hesaplayınız.
Newton - Raphson Metodu ile Çözüm
İlk olarak hata tanımlaması ϵ yapılır. Eğer $\epsilon$ 1E- 6 sayısından küçük ise döngü durdurulur. İlk değer olarak $x_0$=1 değerini verelim.
format shortG
clear
clc
%% Başlangıç
f = @(x) x^2 - (2*exp(-1*x) * x^3) - exp(-3*x);
f_prime = @(x) 2*x + 3*exp(-3*x) - 6*x^2*exp(-x) + 2*x^3*exp(-x);
f_prime_prime = @(x) 12*x^2*exp(-x) - 12*x*exp(-x) - 9*exp(-3*x) - 2*x^3*exp(-x) + 2;
% İlk değer olarak x_current = 1 olsun.
x_current = 1;
counter = 1;
while (true)
x_next = x_current - (f(x_current)/f_prime(x_current));
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Newton’un Değiştirilmiş Metodu
clear epsilon counter x_current x_next
% İlk değer olarak x_current = 1 olsun.
x_current = 1;
counter = 1;
while (true)
u_x = f(x_current) / f_prime(x_current);
u_prime_x = 1 - (f(x_current) * f_prime_prime(x_current) / (f_prime(x_current))^2);
x_next = x_current - (u_x / u_prime_x);
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Secant Metodu
Bu metotta iki adet başlangıç değeri kullanacağız. İlk başlangıç değeri olarak $x_0 = 1$ ve $x_{-1} = 2$ değerlerini kullanacağız.
clear epsilon counter x_current x_next
% İlk değer olarak x_current = 1, x_previous = 2 olsun.
x_current = 1;
x_previous = 2;
counter = 1;
while (true)
x_next = x_current - ((f(x_current)*(x_current - x_previous)) / (f(x_current) - f(x_previous)));
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Soru 3
$sin{x^3+2} - 1/x$ denkleminin köklerini $x_0$=1 ve $x_{-1}$=2 başlangıç değerlerinde secant metodu ile hesaplayınız.
Denklemin köklerini secant metodu ile bulacağız.
Aşağıdaki kod bloğunda sinüs fonksiyonu (sind) derece cinsinden kullanılmıştır.
clear epsilon counter x_current x_next f
f = @(x) sind(x^3 + 2) - (1/x);
% İlk değer olarak x_current = 1, x_previous = 2 olsun.
x_current = 1;
x_previous = 2;
counter = 1;
while (true)
x_next = x_current - ((f(x_current)*(x_current - x_previous)) / (f(x_current) - f(x_previous)));
epsilon = abs(x_next - x_current);
fprintf("|Deneme: %.0f \t | x_n: %4.10f | x_(n+1): %4.10f \t | Epsilon: %4.7f \n", ...
counter, x_current, x_next,epsilon);
if (epsilon <= 1E-6)
break;
end
counter = counter + 1;
x_current = x_next;
end
Tweet
Donanımlı bir çalışma olmuş.Tebrik ederim.
YanıtlaSil