Azzera filtri
Azzera filtri

Solve and plot system in x and y with varying constants e and t

56 visualizzazioni (ultimi 30 giorni)
hello,
i am having troubles solving the following problem:
solve and plot for x and y
x+y+e+t>=0
And
x*y-e*t>=0
where x and y are the two variables while e and t are two constants whose values has to vary in a range
i am trying to see the effect of e and t on the system represented by x and y.
basically i would like to obtain on the same graph different curves in x and y for a fixed number of combinations of e and t.
my code so far is:
n= 21;
x = linspace(-100, 100, n);
y = linspace(-100, 100, n);
[X, Y] = meshgrid(x, y);
a = 50;
b = 5;
e = linspace(-a, a, b);
t = linspace(-a, a, b);
Z = zeros(n, n);
for k = 1:b
for s = 1:b
b = X + Y + e(k) + t(s);
d = X.*Y - e(k).*t(s);
for i= 1:n
for j= 1:n
if b(i,j) >= 0
Z(i,j) = d(i,j);
else
Z(i,j) = -1;
end
end
v = [0, 0];
contour(X, Y, Z, v, 'LineWidth', 1.5)
grid on
hold on
end
end
end
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
could anybody please give me any suggestions on how to improve it, as the result so far is not what i expect.
thank you very much

Risposta accettata

Torsten
Torsten il 1 Lug 2024 alle 19:14
Spostato: Torsten il 1 Lug 2024 alle 19:14
basically i would like to obtain on the same graph different curves in x and y for a fixed number of combinations of e and t.
Inequalities produce 2d-regions, not 1d-curves as feasible sets. That's why it is difficult or even impossible to find an understandable plot of more than one feasible region for different values of e and t in one graph.
  5 Commenti
Torsten
Torsten il 2 Lug 2024 alle 13:44
Modificato: Torsten il 2 Lug 2024 alle 14:25
Done (see above).

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 1 Lug 2024 alle 21:29
Spostato: Walter Roberson il 1 Lug 2024 alle 21:30
for k = 1:b
for s = 1:b
b = X + Y + e(k) + t(s);
You redefine b, which was used as the limit of your for loops.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by