Plot system of linear equations

조회 수: 15 (최근 30일)
Yannick Ongena
Yannick Ongena 2020년 5월 14일
댓글: Walter Roberson 2022년 7월 30일
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
Walter Roberson
Walter Roberson 2020년 5월 15일
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 2020년 5월 15일
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.

댓글을 달려면 로그인하십시오.

답변 (1개)

Sudhir Solkampally
Sudhir Solkampally 2021년 5월 20일
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
kenzo
kenzo 2022년 7월 29일
What if you want to plot x=4, y=6, t=3*x+2*y=18 on the same graph
Walter Roberson
Walter Roberson 2022년 7월 30일
syms x y
t = 3*x + 2*y == 18
t = 
ty = solve(t, y)
ty = 
fplot([6, ty], [-10 10])
xline(4)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by