Plot system of linear equations

18 visualizzazioni (ultimi 30 giorni)
Yannick Ongena
Yannick Ongena il 14 Mag 2020
Commentato: Walter Roberson il 30 Lug 2022
One of the first things I want to do in Matlab is enter a system of linear equations. I already found the example that helps me solve that system but I also want to plot those to see them visual.
The example I have is:
2*x - y == 7
x + y ==2
The code I use for solving this is the following:
syms x y
eq1 = 2*x-y==7
eq2 = x + y ==2
[A,B] = equationsToMatrix([eq1, eq2], [x, y])
X = linsolve(A,B)
This works.
But how do I plot eq1 and eq2?
If I'm not mistaken, the plot function requires actual values and not a function.
I know I can do something like this:
x = -10:0.1:10
y = 2*x- 7
plot(x,y)
But I was wondering if there's another way so that I can simply plot eq1 and eq2 without transforming it to something like y = ....
  4 Commenti
Walter Roberson
Walter Roberson il 15 Mag 2020
fplot() had a number of new features added in R2015a, including the ability to plot symbolic expressions. ezplot() was left unenhanced.
Also, fplot() does a lot more work to try to find discontinuities, and to draw in the background.
ezplot() is based upon the much older technology of inline functions, which is not as efficient. inline() effectively creates scripts and eval()'s them, with all the problems that can cause.
Yannick Ongena
Yannick Ongena il 15 Mag 2020
ok that makes sense.
I noticed when I enter the code in Live Editor, the editor suggest to use fimplicit instead of ezplot as it is recommended when you use the == operator.
So I did that now and I simply can replace ezplot with fimplicit and that seems to work on the code I have.

Accedi per commentare.

Risposte (1)

Sudhir Solkampally
Sudhir Solkampally il 20 Mag 2021
Hi Yannick,
As per my understanding you are trying to plot linear equations. Below is the code snippet for reference.
syms x y
eq1 = 2*x-y==7;
eq2 = x + y ==2
[A,B] = equationsToMatrix([eq1, eq2], [x, y])
X = linsolve(A,B);
fimplicit(eq1);
hold on
fimplicit(eq2);
hold off
For more details, you may refer to syms on symbolic equations in MATLAB
Also you can refer to fimplicit for plotting equations in MATLAB.
Thanks
  2 Commenti
kenzo
kenzo il 29 Lug 2022
What if you want to plot x=4, y=6, t=3*x+2*y=18 on the same graph
Walter Roberson
Walter Roberson il 30 Lug 2022
syms x y
t = 3*x + 2*y == 18
t = 
ty = solve(t, y)
ty = 
fplot([6, ty], [-10 10])
xline(4)

Accedi per commentare.

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by