Sustavi linearnih jednadžbi i nejednadžbi

verzija: SageMath 9.4

In [1]:
%display latex

1. zadatak

Riješite sustav

$$\begin{align*}2x+3y+z&=2\\ x-3y+2z&=6\\ -2x+6y-z&=3\end{align*}.$$

Rješenje

1. način - pomoću naredbe solve

In [2]:
x,y,z = var('x y z')
solve([2*x+3*y+z==2,x-3*y+2*z==6,-2*x+6*y-z==3],x,y,z)
Out[2]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(-\frac{7}{3}\right), y = \left(\frac{5}{9}\right), z = 5\right]\right]\]

ako želimo rješenje dobiti u obliku rječnika

In [3]:
solve([2*x+3*y+z==2,x-3*y+2*z==6,-2*x+6*y-z==3],x,y,z,solution_dict=True)
Out[3]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left\{x : -\frac{7}{3}, y : \frac{5}{9}, z : 5\right\}\right]\]

2. način - pomoću matričnog zapisa

In [4]:
A=matrix(3,3,[2,3,1,1,-3,2,-2,6,-1])
B=matrix(3,1,[2,6,3])
A.solve_right(B)
Out[4]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{r} -\frac{7}{3} \\ \frac{5}{9} \\ 5 \end{array}\right)\]

3. način - možemo definirati svoju funkciju koja će rješavati linearni sustav koji je zadan u matričnom obliku (ova naša funkcija će biti korisna kod sustava koji nemaju jedinstveno rješenje).

  • lijevo - predstavlja matricu sustava
  • desno - predstavlja matricu slobodnih koeficijenata
  • varijable - lista nepoznanica
  • parametri - lista u kojoj je dan raspored nepoznanica onim redoslijedom kojim želimo po potrebi uzimati pojedine varijable za parametre. Ako ništa ne navedemo, tada se nepoznanice uzimaju za parametre onim redoslijedom kojim su dane u listi varijable. Nepoznanice se za parametre uzimaju počevši od kraja liste parametri.
  • rjecnik - želimo li rješenje sustava dobiti u obliku rječnika
In [5]:
def linear_solve(lijevo,desno,varijable,parametri=None,rjecnik=False):
    jednadzbe=[]
    if parametri==None: parametri=varijable
    lijeva_strana=lijevo*matrix([[t] for t in varijable])
    for i in range(lijeva_strana.nrows()):
        for j in range(lijeva_strana.ncols()):
            jednadzbe.append(lijeva_strana[i,j]==desno[i,j])
    rj=solve(jednadzbe,*parametri,solution_dict=rjecnik)
    return rj
In [6]:
linear_solve(A,B,[x,y,z])
Out[6]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(-\frac{7}{3}\right), y = \left(\frac{5}{9}\right), z = 5\right]\right]\]
In [7]:
linear_solve(A,B,[x,y,z],rjecnik=True)
Out[7]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left\{x : -\frac{7}{3}, y : \frac{5}{9}, z : 5\right\}\right]\]

2. zadatak

Zadan je sustav jednadžbi

$$\begin{align*}x+y+2z+3u&=6\\ x-4y+2z-3u&=-4\\ 7y+2z+5u&=12\\ x+3y+4z+2u&=8\end{align*}.$$

Odredite opće rješenje sustava, odredite uvjet pod kojim je suma komponenata rješenja pozitivna i nađite sva bazična rješenja.

Rješenje

uočite da iako sustav ima beskonačno mnogo rješenje, solve_right metoda daje samo jedno specijalno rješenje, a naša funkcija linear_solve će dati sva rješenja

In [8]:
x,y,z,u=var('x y z u')
solve([x+y+2*z+3*u==6,x-4*y+2*z-3*u==-4,7*y+2*z+5*u==12,x+3*y+4*z+2*u==8],[x,y,z,u])
Out[8]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{26}{5} \, r_{1} + 6, y = -\frac{6}{5} \, r_{1} + 2, z = \frac{17}{10} \, r_{1} - 1, u = r_{1}\right]\right]\]
In [9]:
A=matrix(4,4,[1,1,2,3,1,-4,2,-3,0,7,2,5,1,3,4,2])
B=matrix(4,1,[6,-4,12,8])
A.solve_right(B)
Out[9]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{r} 6 \\ 2 \\ -1 \\ 0 \end{array}\right)\]
In [10]:
linear_solve(A,B,[x,y,z,u])
Out[10]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{26}{5} \, r_{2} + 6, y = -\frac{6}{5} \, r_{2} + 2, z = \frac{17}{10} \, r_{2} - 1, u = r_{2}\right]\right]\]

opće rješenje sustava u kojemu je varijabla $x$ parametar

In [11]:
solve([x+y+2*z+3*u==6,x-4*y+2*z-3*u==-4,7*y+2*z+5*u==12,x+3*y+4*z+2*u==8],[y,z,u,x])
Out[11]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[y = \frac{3}{13} \, r_{3} + \frac{8}{13}, z = -\frac{17}{52} \, r_{3} + \frac{25}{26}, u = -\frac{5}{26} \, r_{3} + \frac{15}{13}, x = r_{3}\right]\right]\]
In [12]:
linear_solve(A,B,[x,y,z,u],[y,z,u,x])
Out[12]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[y = \frac{3}{13} \, r_{4} + \frac{8}{13}, z = -\frac{17}{52} \, r_{4} + \frac{25}{26}, u = -\frac{5}{26} \, r_{4} + \frac{15}{13}, x = r_{4}\right]\right]\]

opće rješenje sustava u kojemu je varijabla $y$ parametar

In [13]:
solve([x+y+2*z+3*u==6,x-4*y+2*z-3*u==-4,7*y+2*z+5*u==12,x+3*y+4*z+2*u==8],[x,z,u,y])
Out[13]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \frac{13}{3} \, r_{5} - \frac{8}{3}, z = -\frac{17}{12} \, r_{5} + \frac{11}{6}, u = -\frac{5}{6} \, r_{5} + \frac{5}{3}, y = r_{5}\right]\right]\]
In [14]:
linear_solve(A,B,[x,y,z,u],[x,z,u,y])
Out[14]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \frac{13}{3} \, r_{6} - \frac{8}{3}, z = -\frac{17}{12} \, r_{6} + \frac{11}{6}, u = -\frac{5}{6} \, r_{6} + \frac{5}{3}, y = r_{6}\right]\right]\]

opće rješenje sustava u kojemu je varijabla $z$ parametar

In [15]:
solve([x+y+2*z+3*u==6,x-4*y+2*z-3*u==-4,7*y+2*z+5*u==12,x+3*y+4*z+2*u==8],[x,y,u,z])
Out[15]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{52}{17} \, r_{7} + \frac{50}{17}, y = -\frac{12}{17} \, r_{7} + \frac{22}{17}, u = \frac{10}{17} \, r_{7} + \frac{10}{17}, z = r_{7}\right]\right]\]
In [16]:
linear_solve(A,B,[x,y,z,u],[x,y,u,z])
Out[16]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{52}{17} \, r_{8} + \frac{50}{17}, y = -\frac{12}{17} \, r_{8} + \frac{22}{17}, u = \frac{10}{17} \, r_{8} + \frac{10}{17}, z = r_{8}\right]\right]\]

opće rješenje sustava u kojemu je varijabla $u$ parametar

In [17]:
solve([x+y+2*z+3*u==6,x-4*y+2*z-3*u==-4,7*y+2*z+5*u==12,x+3*y+4*z+2*u==8],[x,y,z,u])
Out[17]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{26}{5} \, r_{9} + 6, y = -\frac{6}{5} \, r_{9} + 2, z = \frac{17}{10} \, r_{9} - 1, u = r_{9}\right]\right]\]
In [18]:
linear_solve(A,B,[x,y,z,u])
Out[18]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -\frac{26}{5} \, r_{10} + 6, y = -\frac{6}{5} \, r_{10} + 2, z = \frac{17}{10} \, r_{10} - 1, u = r_{10}\right]\right]\]

uvjet da je suma komponenata rješenja pozitivna - pogledat ćemo taj uvjet na općem rješenju u kojemu je varijabla $y$ parametar (analogno bismo mogli pogledati i za ostale oblike općih rješenja)

In [19]:
rjesenje=linear_solve(A,B,[x,y,z,u],[x,z,u,y],rjecnik=True);rjesenje
Out[19]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left\{x : \frac{13}{3} \, r_{11} - \frac{8}{3}, z : -\frac{17}{12} \, r_{11} + \frac{11}{6}, u : -\frac{5}{6} \, r_{11} + \frac{5}{3}, y : r_{11}\right\}\right]\]
In [20]:
uvjet=rjesenje[0][x]+rjesenje[0][y]+rjesenje[0][z]+rjesenje[0][u];uvjet
Out[20]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\frac{37}{12} \, r_{11} + \frac{5}{6}\]
In [21]:
solve(uvjet>0,rjesenje[0][y])
Out[21]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[r_{11} > \left(-\frac{10}{37}\right)\right]\right]\]

bazična rješenja

Ne postoji gotova naredba u SAGE-u koja bi ispisala sva bazična rješenja zadanog sustava. Stoga ćemo definirati svoju funkciju bazicna_rjesenja. Ta funkcija na ulazu traži sljedeće podatke:

  • matrica - matrica sustava koja može biti unešena i kao dvodimenzionalna python lista (nije potrebno pisati ključnu riječ matrix, ali neće biti greška ako se i napiše)
  • koeficijenti - matrica slobodnih koeficijenata koja također može biti unešena i kao jednodimenzionalna python lista
  • nepoznanice - matrica nepoznanica koja se unosi kao jednodimenzionalna python lista

Ukoliko je sustav kontradiktoran ili ima jedinstveno rješenje, funkcija bazicna_rjesenja će vas o tome obavijestiti.

In [22]:
def bazicna_rjesenja(matrica,koeficijenti,nepoznanice):
    if type(matrica)==list: matrica=matrix(matrica)
    if type(koeficijenti)!=list: koeficijenti=koeficijenti.list()
    if matrix(matrica.columns()+[tuple(koeficijenti)]).rank()!=matrica.rank():
        return "Error: sustav je kontradiktoran"
    brojParametara=len(nepoznanice)-matrica.rank()
    if brojParametara==0:
        return "Error: sustav ima jedinstveno rjesenje"
    X=matrix(len(nepoznanice),1,nepoznanice)
    lijevo=matrica*X
    desno=matrix(len(koeficijenti),1,koeficijenti)
    jednadzbe=[]
    for i in range(lijevo.nrows()): 
         for j in range(lijevo.ncols()): 
             jednadzbe.append(lijevo[i,j]==desno[i,j])
    parametri=Combinations(zip(nepoznanice,[0]*len(nepoznanice)),brojParametara)
    for t in parametri:
        var1=list(map(lambda q: q[0], t))
        var2=list(filter(lambda q: not(q in var1), nepoznanice))
        rjesenje=solve(list(map(lambda q: q.substitute(dict(t)), jednadzbe)),*var2)
        if rjesenje!=[]:
            rjesenje=list(map(lambda q: q[0]==q[1],t))+rjesenje[0]
            print(rjesenje)
    return None
In [23]:
bazicna_rjesenja(A,B,[x,y,z,u])
[x == 0, y == (8/13), z == (25/26), u == (15/13)]
[y == 0, x == (-8/3), z == (11/6), u == (5/3)]
[z == 0, x == (50/17), y == (22/17), u == (10/17)]
[u == 0, x == 6, y == 2, z == -1]

Prvi zadatak i bazična rješenja - sustav u prvom zadatku ima jedinstveno rješenje, što naša funkcija bazicna_rjesenja to i prepoznaje

In [24]:
bazicna_rjesenja([[2,3,1],[1,-3,2],[-2,6,-1]],[2,6,3],[x,y,z])
Out[24]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|Error:|\phantom{\verb!x!}\verb|sustav|\phantom{\verb!x!}\verb|ima|\phantom{\verb!x!}\verb|jedinstveno|\phantom{\verb!x!}\verb|rjesenje|\]

3. zadatak

Zadan je sustav jednadžbi

$$\begin{align*}2x_1+3x_2+2x_3+6x_4&=1\\ -2x_1+3x_2-6x_3+12x_4&=-19\\ 2x_1+6x_2+15x_4&=-8\end{align*}.$$

Odredite opće rješenje sustava tako da varijable $x_3$ i $x_4$ budu parametri i nađite sva bazična rješenja.

Rješenje

In [25]:
x1,x2,x3,x4=var('x1 x2 x3 x4')
In [26]:
A=matrix(3,4,[2,3,2,6,-2,3,-6,12,2,6,0,15])
B=matrix(3,1,[1,-19,-8])
In [27]:
linear_solve(A,B,[x1,x2,x3,x4],[x1,x2,x4,x3])
Out[27]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = -2 \, r_{12} + \frac{3}{2} \, r_{13} + 5, x_{2} = \frac{2}{3} \, r_{12} - 3 \, r_{13} - 3, x_{4} = r_{13}, x_{3} = r_{12}\right]\right]\]

ako želimo da varijable $x_1$ i $x_3$ budu parametri

In [28]:
linear_solve(A,B,[x1,x2,x3,x4],[x2,x4,x3,x1])
Out[28]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{2} = -2 \, r_{14} - \frac{10}{3} \, r_{15} + 7, x_{4} = \frac{2}{3} \, r_{14} + \frac{4}{3} \, r_{15} - \frac{10}{3}, x_{3} = r_{15}, x_{1} = r_{14}\right]\right]\]

bazična rješenja

In [29]:
bazicna_rjesenja(A,B,[x1,x2,x3,x4])
[x1 == 0, x2 == 0, x3 == (21/10), x4 == (-8/15)]
[x1 == 0, x3 == 0, x2 == 7, x4 == (-10/3)]
[x1 == 0, x4 == 0, x2 == (-4/3), x3 == (5/2)]
[x2 == 0, x3 == 0, x1 == (7/2), x4 == -1]
[x2 == 0, x4 == 0, x1 == -4, x3 == (9/2)]
[x3 == 0, x4 == 0, x1 == 5, x2 == -3]

4. zadatak

Riješite sustav jednadžbi

$$\begin{align*}x_1-4x_2+5x_3&=6\\ -3x_2+2x_3&=-12\\ 2x_1+7x_2&=35\end{align*}.$$

Rješenje

Sustav je kontradiktoran.

In [30]:
A=matrix(3,3,[1,-4,5,0,-3,2,2,7,0])
B=matrix(3,1,[6,-12,35])
In [31]:
linear_solve(A,B,[x1,x2,x3])
Out[31]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\right]\]

Naša implementirana funkcija bazicna_rjesenja će nas također obavijestiti da se radi o kontradiktornom sustavu pa nema smisla tražiti bazična rješenja.

In [32]:
bazicna_rjesenja(A,B,[x1,x2,x3])
Out[32]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\verb|Error:|\phantom{\verb!x!}\verb|sustav|\phantom{\verb!x!}\verb|je|\phantom{\verb!x!}\verb|kontradiktoran|\]

5. zadatak

Odredite sva bazična rješenja sustava

$$\begin{align*}-4x_1-3x_2-4x_3&=-1\\ x_1+x_2+x_3&=1\\ 14x_1+11x_2+14x_3&=5\\ 11x_1+9x_2+11x_3&=5\end{align*}.$$

Rješenje

Pogledajmo najprije kako izgleda opće rješenje zadanog sustava.

In [33]:
A=matrix(4,3,[-4,-3,-4,1,1,1,14,11,14,11,9,11])
B=matrix(4,1,[-1,1,5,5])
In [34]:
linear_solve(A,B,[x1,x2,x3])
Out[34]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = -r_{16} - 2, x_{2} = 3, x_{3} = r_{16}\right]\right]\]

Vidimo da je nepoznanica $x_2$ uvijek jednaka 3 pa nećemo imati maksimalni broj bazičnih rješenja. Naša implementirana funkcija bazicna_rjesenja također dobro reagira u takvim situacijama i ispisat će samo dva bazična rješenja u ovom slučaju.

In [35]:
bazicna_rjesenja(A,B,[x1,x2,x3])
[x1 == 0, x2 == 3, x3 == -2]
[x3 == 0, x1 == -2, x2 == 3]

6. zadatak

Odredite inverznu matricu matrice $A=\begin{bmatrix}0&1&-1&4\\ 2&1&0&1\\ 3&2&2&5\\ -2&-4&-1&1\end{bmatrix}$.

Rješenje

Kao što smo računali ranije inverze od $2\times2$ i $3\times3$ matrica, tako možemo računati inverz bilo koje kvadratne matrice reda $n$.

In [36]:
A=matrix(4,4,[0,1,-1,4,2,1,0,1,3,2,2,5,-2,-4,-1,1])
In [37]:
A^-1
Out[37]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} -\frac{13}{82} & \frac{53}{82} & -\frac{1}{41} & \frac{9}{82} \\ \frac{15}{82} & -\frac{17}{82} & -\frac{2}{41} & -\frac{23}{82} \\ -\frac{23}{82} & -\frac{45}{82} & \frac{14}{41} & -\frac{3}{82} \\ \frac{11}{82} & -\frac{7}{82} & \frac{4}{41} & \frac{5}{82} \end{array}\right)\]
In [38]:
A.inverse()
Out[38]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} -\frac{13}{82} & \frac{53}{82} & -\frac{1}{41} & \frac{9}{82} \\ \frac{15}{82} & -\frac{17}{82} & -\frac{2}{41} & -\frac{23}{82} \\ -\frac{23}{82} & -\frac{45}{82} & \frac{14}{41} & -\frac{3}{82} \\ \frac{11}{82} & -\frac{7}{82} & \frac{4}{41} & \frac{5}{82} \end{array}\right)\]
In [39]:
~A
Out[39]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} -\frac{13}{82} & \frac{53}{82} & -\frac{1}{41} & \frac{9}{82} \\ \frac{15}{82} & -\frac{17}{82} & -\frac{2}{41} & -\frac{23}{82} \\ -\frac{23}{82} & -\frac{45}{82} & \frac{14}{41} & -\frac{3}{82} \\ \frac{11}{82} & -\frac{7}{82} & \frac{4}{41} & \frac{5}{82} \end{array}\right)\]

7. zadatak

Odredite rangove sljedećih matrica:

$$A=\begin{bmatrix}2&6&-4&1&2\\ 4&-12&8&0&-4\\ -3&9&2&-2&3\end{bmatrix},\quad B=\begin{bmatrix}1&-2&0&4&3&0\\ -2&0&5&2&6&1\\ 0&1&1&3&-2&-1\\ -1&-2&5&6&9&1\\ 1&0&2&10&-1&-2\end{bmatrix},\quad C=\begin{bmatrix}3&2&0&1\\ 1&-1&1&1\\ 4&2&-1&1\\ 0&0&2&1\end{bmatrix}.$$

Rješenje

In [40]:
A=matrix(3,5,[2,6,-4,1,2,4,-12,8,0,-4,-3,9,2,-2,3])
B=matrix(5,6,[1,-2,0,4,3,0,-2,0,5,2,6,1,0,1,1,3,-2,-1,-1,-2,5,6,9,1,1,0,2,10,-1,-2])
C=matrix(4,4,[3,2,0,1,1,-1,1,1,4,2,-1,1,0,0,2,1])
In [41]:
A.rank(),B.rank(),C.rank()
Out[41]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(3, 3, 4\right)\]
In [42]:
rank(A),rank(B),rank(C)
Out[42]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(3, 3, 4\right)\]

8. zadatak

U ovisnosti o $k\in\mathbb{R}$ riješite sustav linearnih jednadžbi

$$\begin{align*}x-2y&=1\\ x-y+kz&=-2\\ ky+4z&=6\end{align*}.$$

Rješenje

In [43]:
k=var('k')

Komentirajmo najprije jedinstvenost rješenja pomoću Cramerovog pravila.

In [44]:
A=matrix(3,3,[1,-2,0,1,-1,k,0,k,4])
A.det()
Out[44]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-k^{2} + 4\]
In [45]:
solve(A.det()==0,k)
Out[45]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[k = \left(-2\right), k = 2\right]\]

Zaključujemo da sustav za $k\in\mathbb{R}\setminus\{-2,2\}$ ima jedinstveno rješenje koje je dano s

In [46]:
linear_solve(A,matrix(3,1,[1,-2,6]),[x,y,z])
Out[46]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \frac{k + 10}{k - 2}, y = \frac{6}{k - 2}, z = -\frac{3}{k - 2}\right]\right]\]

slučaj $k=-2$: sustav ima beskonačno mnogo rješenja

In [47]:
A.subs(k=-2)
Out[47]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & -2 & 0 \\ 1 & -1 & -2 \\ 0 & -2 & 4 \end{array}\right)\]
In [48]:
A.subs({k:-2})
Out[48]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & -2 & 0 \\ 1 & -1 & -2 \\ 0 & -2 & 4 \end{array}\right)\]
In [49]:
linear_solve(A.subs(k=-2),matrix(3,1,[1,-2,6]),[x,y,z])
Out[49]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 4 \, r_{17} - 5, y = 2 \, r_{17} - 3, z = r_{17}\right]\right]\]

slučaj $k=2$: sustav je kontradiktoran

In [50]:
linear_solve(A.subs(k=2),matrix(3,1,[1,-2,6]),[x,y,z])
Out[50]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\right]\]

9. zadatak

Odredite sve $a\in\mathbb{R}$ za koje donji sustav ima i netrivijalnih rješenja i za takve $a$-ove nađite opća rješenja promatranog sustava.


$$\begin{align*}-x+3y+az&=0\\ 2x-4y+z&=0\\ -3x+ay-2az&=0\end{align*}.$$

Rješenje

U rješavanju zadatka koristimo Roucheov teorem.

In [51]:
a=var('a')
In [52]:
A=matrix(3,3,[-1,3,a,2,-4,1,-3,a,-2*a])
In [53]:
det(A)
Out[53]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2 \, a^{2} - 7 \, a - 9\]
In [54]:
solve(det(A)==0,a)
Out[54]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[a = \left(\frac{9}{2}\right), a = \left(-1\right)\right]\]

Zaključujemo da sustav ima i netrivijalnih rješenja ako i samo ako je $a=\frac{9}{2}$ ili $a=-1$.

opće rješenje sustava za $a=\frac{9}{2}$ (varijablu $y$ smo uzeli za parametar)

In [55]:
linear_solve(A.subs(a=9/2),matrix(3,1,[0,0,0]),[x,y,z],[x,z,y])
Out[55]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \frac{21}{10} \, r_{18}, z = -\frac{1}{5} \, r_{18}, y = r_{18}\right]\right]\]

opće rješenje sustava za $a=-1$ (varijablu $y$ smo uzeli za parametar)

In [56]:
linear_solve(A.subs(a=-1),matrix(3,1,[0,0,0]),[x,y,z],[x,z,y])
Out[56]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = r_{19}, z = 2 \, r_{19}, y = r_{19}\right]\right]\]

10. zadatak

Riješite sustav linearnih nejednadžbi

$$\begin{align*}3x_1-4x_2&\leq6\\ 3x_1+4x_2&\leq12\\ 2x_1-x_2&\geq0\end{align*}.$$

Rješenje

Uočite u prve tri liste izračunata vršna rješenja

In [57]:
solve([3*x1-4*x2<=6,3*x1+4*x2<=12,2*x1-x2>=0],x1,x2)
Out[57]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = \left(-\frac{6}{5}\right), x_{2} = \left(-\frac{12}{5}\right)\right], \left[x_{1} = \left(\frac{12}{11}\right), x_{2} = \left(\frac{24}{11}\right)\right], \left[x_{1} = 3, x_{2} = \left(\frac{3}{4}\right)\right], \left[x_{1} = -\frac{4}{3} \, x_{2} + 4, \left(\frac{3}{4}\right) < x_{2}, x_{2} < \left(\frac{24}{11}\right)\right], \left[x_{1} = \frac{1}{2} \, x_{2}, \left(-\frac{12}{5}\right) < x_{2}, x_{2} < \left(\frac{24}{11}\right)\right], \left[x_{1} = \frac{4}{3} \, x_{2} + 2, \left(-\frac{12}{5}\right) < x_{2}, x_{2} < \left(\frac{3}{4}\right)\right], \left[\frac{1}{2} \, x_{2} < x_{1}, x_{1} < \min\left(\frac{4}{3} \, x_{2} + 2, -\frac{4}{3} \, x_{2} + 4\right), \left(-\frac{12}{5}\right) < x_{2}, x_{2} < \left(\frac{24}{11}\right)\right]\right]\]

grafička metoda

In [58]:
region_plot([3*x1-4*x2<=6,3*x1+4*x2<=12,2*x1-x2>=0],(x1,-2,4),(x2,-3,3),
            incol='yellow',borderwidth=2,bordercol='black',plot_points=300,figsize=(6,4))
Out[58]:

11. zadatak

Riješite sustav linearnih nejednadžbi

$$\begin{align*}4x_1+5x_2&\leq10\\ x_1-2x_2&\leq1\\ 3x_1-4x_2&\geq-6\\ x_1&\geq0\\ x_2&\geq0\end{align*}.$$

Rješenje

Uočite svih pet izračunatih vršnih rješenja

In [59]:
solve([4*x1+5*x2<=10,x1-2*x2<=1,3*x1-4*x2>=-6,x1>=0,x2>=0],x1,x2)
Out[59]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[\max\left(0, \frac{4}{3} \, x_{2} - 2\right) < x_{1}, x_{1} < \min\left(2 \, x_{2} + 1, -\frac{5}{4} \, x_{2} + \frac{5}{2}\right), 0 < x_{2}, x_{2} < \left(\frac{54}{31}\right)\right], \left[x_{1} = 0, 0 < x_{2}, x_{2} < \left(\frac{3}{2}\right)\right], \left[x_{1} = 0, x_{2} = 0\right], \left[x_{1} = 0, x_{2} = \left(\frac{3}{2}\right)\right], \left[x_{1} = \left(\frac{10}{31}\right), x_{2} = \left(\frac{54}{31}\right)\right], \left[x_{1} = 1, x_{2} = 0\right], \left[x_{1} = \left(\frac{25}{13}\right), x_{2} = \left(\frac{6}{13}\right)\right], \left[x_{1} = -\frac{5}{4} \, x_{2} + \frac{5}{2}, \left(\frac{6}{13}\right) < x_{2}, x_{2} < \left(\frac{54}{31}\right)\right], \left[x_{1} = 2 \, x_{2} + 1, 0 < x_{2}, x_{2} < \left(\frac{6}{13}\right)\right], \left[x_{1} = \frac{4}{3} \, x_{2} - 2, \left(\frac{3}{2}\right) < x_{2}, x_{2} < \left(\frac{54}{31}\right)\right], \left[x_{2} = 0, 0 < x_{1}, x_{1} < 1\right]\right]\]

grafička metoda

In [60]:
region_plot([4*x1+5*x2<=10,x1-2*x2<=1,3*x1-4*x2>=-6,x1>=0,x2>=0],(x1,-1,3),(x2,-1,3),
            incol='yellow',borderwidth=2,bordercol='black',plot_points=250,aspect_ratio=1,figsize=(6,4))
Out[60]:

12. zadatak

Riješite sustav linearnih nejednadžbi

$$\begin{align*}-12x_1+3x_2&\leq3\\ 4x_1-10x_2&\leq5\\ x_1&\geq0\end{align*}.$$

Rješenje

uočite oba izračunata vršna rješenja

In [61]:
solve([-12*x1+3*x2<=3,4*x1-10*x2<=5,x1>=0],x1,x2)
Out[61]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[\max\left(0, \frac{1}{4} \, x_{2} - \frac{1}{4}\right) < x_{1}, x_{1} < \frac{5}{2} \, x_{2} + \frac{5}{4}, \left(-\frac{1}{2}\right) < x_{2}\right], \left[x_{1} = 0, \left(-\frac{1}{2}\right) < x_{2}, x_{2} < 1\right], \left[x_{1} = 0, x_{2} = \left(-\frac{1}{2}\right)\right], \left[x_{1} = 0, x_{2} = 1\right], \left[x_{1} = \frac{1}{4} \, x_{2} - \frac{1}{4}, 1 < x_{2}\right], \left[x_{1} = \frac{5}{2} \, x_{2} + \frac{5}{4}, \left(-\frac{1}{2}\right) < x_{2}\right]\right]\]

grafička metoda - uočite da je rješenje neomeđen skup u ravnini

In [62]:
region_plot([-12*x1+3*x2<=3,4*x1-10*x2<=5,x1>=0],(x1,-1,3),(x2,-1,3),
            incol='yellow',borderwidth=2,bordercol='black',plot_points=250,aspect_ratio=1,figsize=(6,4))
Out[62]:

Maxima

Možda niste znali, ali unutar SAGE worksheeta možete direktno koristiti i maxima kod. To možete napraviti globalno tako da u meniju na početku worksheeta umjesto sage, odaberete maxima; ili pak možete lokalno samo unutar pojedine ćelije koristiti maxima kod tako da na početku te ćelije najprije napišete %maxima, a nakon toga unutar te ćelije počnete pisati maxima kod.  Dolje ćemo pokazati lokalno korištenje maxime unutar pojedine ćelije na nekoliko prethodnih gore napravljenih zadataka. Nećemo ponovo prepisivati zadatke, nego ćemo samo napisati redni broj zadatka.

1. zadatak

In [63]:
%%maxima
linsolve([2*x+3*y+z=2, x-3*y+2*z=6, -2*x+6*y-z=3], [x,y,z]);
[x=-7/3,y=5/9,z=5]

matrica sustava, proširena matrica sustava i rangovi tih matrica

In [64]:
%%maxima
M: coefmatrix([2*x+3*y+z=2, x-3*y+2*z=6, -2*x+6*y-z=3], [x,y,z]);
Mp: augcoefmatrix([2*x+3*y+z=2, x-3*y+2*z=6, -2*x+6*y-z=3], [x,y,z]);
[rank(M),rank(Mp)];
matrix([2,3,1],[1,-3,2],[-2,6,-1])
matrix([2,3,1,-2],[1,-3,2,-6],[-2,6,-1,-3])
[3,3]

2. zadatak

opće rješenje gdje je varijabla $u$ parametar i pripadno bazično rješenje

In [65]:
%%maxima
sustav: [x+y+2*z+3*u=6,x-4*y+2*z-3*u=-4,7*y+2*z+5*u=12,x+3*y+4*z+2*u=8]$
rj1:linsolve(sustav,[x,y,z,u]);
subst(0,%rnum_list[1],rj1);
[x=-(26*%r1-30)/5,y=-(6*%r1-10)/5,z=(17*%r1-10)/10,u=%r1]
[x=6,y=2,z=-1,u=0]

opće rješenje gdje je varijabla $z$ parametar i pripadno bazično rješenje

In [66]:
%%maxima
rj2: linsolve(sustav,[x,y,u,z]);
subst(0,%rnum_list[1],rj2);
[x=-(52*%r2-50)/17,y=-(12*%r2-22)/17,u=(10*%r2+10)/17,z=%r2]
[x=50/17,y=22/17,u=10/17,z=0]

prethodna dva primjera u kojima ne uvodimo nova slova za parametre

In [67]:
%%maxima
linsolve_params: false$
r1:linsolve(sustav,[x,y,z,u]);
subst(0,u,r1);
[x=-(26*u-30)/5,y=-(6*u-10)/5,z=(17*u-10)/10]
[x=6,y=2,z=-1]
In [68]:
%%maxima
r2:linsolve(sustav,[x,y,u,z]);
subst(0,z,r2);
[x=-(52*z-50)/17,y=-(12*z-22)/17,u=(10*z+10)/17]
[x=50/17,y=22/17,u=10/17]

uvjet pod kojim je suma komponenata rješenja pozitivna ako uzmemo opće rješenje u kojemu je varijabla $y$ parametar

In [69]:
%%maxima
load(fourier_elim)$
r3:linsolve(sustav,[x,z,u,y]);
nejednakost:sum(rhs(r3[i]),i,1,3)+y;
fourier_elim([nejednakost>0],[y]);
[x=(13*y-8)/3,z=-(17*y-22)/12,u=-(5*y-10)/6]
(-(17*y-22)/12)+(13*y-8)/3-(5*y-10)/6+y
[-10/37<y]

6. zadatak

In [70]:
%%maxima
A: matrix([0,1,-1,4],[2,1,0,1],[3,2,2,5],[-2,-4,-1,1])$
invert(A)
matrix([-13/82,53/82,-1/41,9/82],[15/82,-17/82,-2/41,-23/82],[-23/82,-45/82,14/41,-3/82],[11/82,-7/82,4/41,5/82])
In [71]:
%%maxima
doallmxops: false$
invert(A);
-matrix([13,-53,2,-9],[-15,17,4,23],[23,45,-28,3],[-11,7,-8,-5])/82
In [ ]: