Matlab, eşitsizliklerin çözümü için çeşitli araçlar sunar. Özellikle Optimization Toolbox ile birlikte, lineer ve lineer olmayan eşitsizlik sistemlerinin çözümü mümkündür. Ayrıca, grafik yöntemlerle eşitsizliklerin çözüm bölgeleri görselleştirilebilir.
Tek veya iki değişkenli eşitsizlikler için grafik yöntem etkili bir çözüm yoludur. fill veya patch fonksiyonları ile çözüm bölgesi görselleştirilebilir.
1
2
x = linspace(-4, 4, 1000);
3
y = x.^2 - 4;
4
figure
5
plot(x, y, 'b-', 'LineWidth', 2)
6
hold on
7
plot(x, zeros(size(x)), 'k--', 'LineWidth', 1)
8
9
x_fill = x(y > 0);
10
y_fill = y(y > 0);
11
fill([x_fill, fliplr(x_fill)], [y_fill, zeros(size(y_fill))], 'r', 'FaceAlpha', 0.3)
12
grid on
13
xlabel('x')
14
ylabel('f(x) = x^2 - 4')
15
title('x^2 - 4 > 0 Eşitsizliğinin Çözümü')
16
legend('f(x) = x^2 - 4', 'x ekseni', 'Çözüm Bölgesi')
17
hold off
Eşitsizlik Çözüm Yöntemleri:
- Grafik Yöntem: fill, patch fonksiyonları ile çözüm bölgesi görselleştirme
- Optimization Toolbox: linprog, fmincon gibi fonksiyonlar
- Sembolik Yöntem: solve fonksiyonu ile (Symbolic Math Toolbox)
- Mantıksal Operatörler: >, <, >=, <=, ==, ~= operatörleri
- find fonksiyonu: Koşulu sağlayan elemanların indislerini bulma
💡 İki Değişkenli Eşitsizlikler: İki değişkenli eşitsizlikler için meshgrid ve mantıksal indeksleme kullanılarak çözüm bölgesi görselleştirilebilir.
1
2
[X, Y] = meshgrid(-5:0.1:10, -5:0.1:10);
3
Z1 = X + Y < 5;
4
Z2 = X - Y > 1;
5
Z = Z1 & Z2;
6
figure
7
contourf(X, Y, Z, [0.5, 1.5], 'LineColor', 'none')
8
hold on
9
contour(X, Y, X + Y - 5, [0], 'r-', 'LineWidth', 2)
10
contour(X, Y, X - Y - 1, [0], 'b-', 'LineWidth', 2)
11
grid on
12
xlabel('x')
13
ylabel('y')
14
title('x + y < 5 ve x - y > 1 Eşitsizlik Sistemi')
15
legend('Çözüm Bölgesi', 'x + y = 5', 'x - y = 1')
16
colorbar off
17
axis equal
18
hold off
Optimization Toolbox ile Eşitsizlik Çözümü: linprog fonksiyonu, lineer eşitsizlik sistemlerinin çözümü için kullanılır. Bu fonksiyon, lineer programlama problemlerini çözer.
Dikkat: linprog ve diğer optimizasyon fonksiyonları Optimization Toolbox gerektirir. Bu toolbox olmadan bu fonksiyonlar kullanılamaz.
1
2
3
4
5
6
7
f = [-1; -2];
8
A = [1, 1; -1, 1];
9
b = [5; -1];
10
lb = [0; 0];
11
[x, fval] = linprog(f, A, b, [], [], lb)
12
13
14
figure
15
[X, Y] = meshgrid(0:0.1:5, 0:0.1:5);
16
Z1 = X + Y <= 5;
17
Z2 = X - Y >= 1;
18
Z = Z1 & Z2;
19
contourf(X, Y, Z, [0.5, 1.5], 'LineColor', 'none')
20
hold on
21
contour(X, Y, X + Y - 5, [0], 'r-', 'LineWidth', 2)
22
contour(X, Y, X - Y - 1, [0], 'b-', 'LineWidth', 2)
23
plot(x(1), x(2), 'ko', 'MarkerSize', 10, 'MarkerFaceColor', 'k')
24
text(x(1)+0.2, x(2), sprintf('Optimum\n(%.1f, %.1f)', x(1), x(2)), 'FontSize', 12)
25
xlabel('x1')
26
ylabel('x2')
27
title('Lineer Programlama Problemi')
28
grid on
29
axis([0 5 0 5])
30
hold off
Symbolic Math Toolbox ile sembolik eşitsizlik çözümü yapılabilir. solve fonksiyonu eşitsizlikleri de çözebilir ve çözümü matematiksel ifadelerle sunar.
1
2
syms x real
3
4
esitsizlik1 = x^2 - 4 > 0;
5
cozum1 = solve(esitsizlik1, x, 'ReturnConditions', true)
6
7
8
esitsizlik2 = (x-1)/(x+2) >= 0;
9
cozum2 = solve(esitsizlik2, x, 'ReturnConditions', true)
10
11
12
syms y real
13
esitsizlik3 = x + y < 5;
14
esitsizlik4 = x - y > 1;
15
cozum3 = solve([esitsizlik3, esitsizlik4], [x, y], 'ReturnConditions', true)
💡 Mantıksal Operatörler ve find: Diziler üzerinde mantıksal operatörler (>, <, ==, ~=, >=, <=) ve find fonksiyonu ile eşitsizlikleri sağlayan elemanlar bulunabilir.
1
2
A = randn(1, 1000);
3
4
kosul = (A > -1) & (A < 1);
5
indeksler = find(kosul);
6
degerler = A(kosul);
7
fprintf('Toplam %d eleman -1 ile 1 arasındadır\n', length(degerler))
8
9
figure
10
histogram(A, 50, 'FaceColor', 'b', 'EdgeColor', 'k')
11
hold on
12
histogram(degerler, 50, 'FaceColor', 'r', 'EdgeColor', 'k', 'FaceAlpha', 0.7)
13
plot([-1, -1], [0, 50], 'k--', 'LineWidth', 2)
14
plot([1, 1], [0, 50], 'k--', 'LineWidth', 2)
15
xlabel('Değer')
16
ylabel('Frekans')
17
title('Rastgele Sayılar ve -1 ile 1 Arasındaki Sayılar')
18
legend('Tüm Sayılar', '-1 < x < 1 Olan Sayılar')
19
grid on
20
hold off
Eşitsizliklerin çözümü, optimizasyon problemleri, istatistiksel analizler ve mühendislik uygulamalarında sıklıkla karşılaşılan bir gereksinimdir. Matlab'ın sunduğu çeşitli yöntemler, bu tür problemlerin çözümünü esnek ve etkili bir şekilde sağlar.