Generuj zestaw zadań

Wskazówka

Binder <- interaktywna sesja notebooka

import os
import sys
from random import choice

import ipywidgets as widgets
from IPython.display import display, Image, Markdown, Latex
from pdf2image import convert_from_path

import generator_zadan.generatory as gz

print(gz.__version__)
0.2.10

Wybierz zadania

Wskazówka

  • Można komórki uruchamiać wielokrotnie. Aż się trafi ciekawszy przykład.

  • Można zmieniać parametry funkcji generujących.

  • Zmień zadanie_nr na odpowiednio rozróżnialne zadanie_1, zadanie_2 itp. Tylko te będą potem przekazywane do funkcji generującej zestaw. Domyślnie pięć zadań. Można to zmienić niżej przy wywołaniu funkcji generuj_LaTeX().

  • Na potrzeby dokumentacji na początku numery ustawione ma pierwszych pięć przykładów.

Liczby zespolone

Równanie liniowe

Hide code cell source
zadanie = gz.rownanie_liniowe()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_1 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych. Sprawdzić rozwiązanie.

\[ 2 + 6i+\left(8 + 4i\right)z = \left(6 + 3i\right)z\]
** Rozwiązanie ********************************************************************************
\[z=-2 - 2i.\]

Równanie kwadratowe

Hide code cell source
zadanie = gz.rownanie_kwadratowe()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych. Sprawdzić jedno z rozwiązań.

\[ \left(1 + 2 i\right)z^2 + \left(-7 + 11 i\right) z + \left(-20\right)=0\]
** Rozwiązanie ********************************************************************************
\[\Delta = 8+6i, \quad \sqrt{\Delta}=\pm( 3 + i), \quad z_{1}=-2 - 2 i, \quad z_{2}=-1 - 3 i\]

Pierwiastek zespolony

Hide code cell source
zadanie = gz.pierwiastek_zespolony(stopien=choice([3, 4]), nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
temp = zadanie[1].split('\n\t')[2] + zadanie[1].split('\n\t')[5][4:]
display(Latex(f'$${temp}$$'))
display(Markdown(f'![](./pics//rozklad_pierwiastkow1234.png)'))
print("\033[32m*\033[0m" * 95)
zadanie_3 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wszystkie zadane pierwiastki zespolone i zaznaczyć je na płaszczyźnie zespolonej

\[ \sqrt[\leftroot{2}\uproot{-4} \displaystyle ^{3}]{\left(- \frac{32}{81} - \frac{32 \sqrt{5} i}{81} \right) \left(1 - \sqrt{5} i \right)} \]
** Rozwiązanie ********************************************************************************
\[ \sqrt[\leftroot{2}\uproot{-4} \displaystyle ^{3}]{- \frac{64}{27}}=\left\{ - \frac{4}{3}, \ \frac{2}{3} - \frac{2 \sqrt{3} i}{3}, \ \frac{2}{3} + \frac{2 \sqrt{3} i}{3}\right\}.\]

***********************************************************************************************

Równanie zespolone ze sprzężeniem

Hide code cell source
zadanie = gz.rownanie_ze_sprzezeniem(calkowite=choice([False, True]), kwadratowe=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
rozwiazanie = zadanie[1].replace('$ \\\\ \n$', ' $ ').replace('$\\\\\n$', ' $ ').replace('$ \\\\\n$', ' $ ').split('$')
for i in range(1, len(rozwiazanie) - 1):
    display(Latex('$$' + rozwiazanie[i] + '$$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych

\[ z \left(-3 + i\right) + \left(4 + 4 i\right) \overline{z} - 1 - 5 i = 0\]
** Rozwiązanie ********************************************************************************
\[\left(4 + 4 i\right) \left(x - i y\right) + \left(-3 + i\right) \left(x + i y\right) - 1 - 5 i = 0, \]
\[ \left(-1 + i\right) \left(x \left(2 - 3 i\right) + y \left(-5 + 2 i\right) - 2 + 3 i\right) = 0, \]
\[\begin{split} \left\{ \begin{array}{c} x + 3 y - 1 = 0\\ 5 x - 7 y - 5 = 0 \end{array} \right. \end{split}\]
\[ z = \left\{ x : 1, \ y : 0\right\}.\]

Obszar zespolony

Hide code cell source
zadanie = gz.obszar_zespolony(typ=choice([1, 2, 3, 4, 5]), nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$\\begin{gather*}' + zadanie[1].split('{gather*}')[1] + '{gather*}$$'))
display(Markdown(f'![](./pics//obszar1234.png)'))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Zaznaczyć na płaszczyźnie zespolonej obszar spełniający warunek

\[ \left|z-2 + 3 i\right| \geq \frac{1}{2} \]
** Rozwiązanie ********************************************************************************
\[\begin{gather*} \left(x - 2\right)^{2} + \left(y + 3\right)^{2}\geq\frac{1}{4} \end{gather*}\]

Działania w różnych postaciach

zadanie = gz.dzialania_zespolone()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
print("\033[34m*\033[0m" * 95)
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$' + zadanie[1].split('$')[1] + '$$'))
print("\033[32m*\033[0m" * 95)
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Obliczyć

\[ \frac{\left(2 - \frac{2 \sqrt{3} i}{3}\right)\left(1 + \sqrt{3} i\right)}{-1 + \frac{\sqrt{3} i}{3}} + \frac{3\left(\cos\left(- \frac{\pi}{4}\right) + i \, \sin\left(- \frac{\pi}{4}\right)\right)\cdot 5\left(\cos\left(- \frac{\pi}{2}\right) + i \, \sin\left(- \frac{\pi}{2}\right)\right)}{5\left(\cos\left(\frac{\pi}{4}\right) + i \, \sin\left(\frac{\pi}{4}\right)\right)} - \frac{3\,e^{0\, i}\cdot 5\,e^{\frac{\pi}{3}\, i}}{5\,e^{- \frac{2 \pi}{3}\, i}}. \]

Wynik zapisać w postaci algebraicznej, trygonometrycznej i wykładniczej.

***********************************************************************************************
** Rozwiązanie ********************************************************************************
\[-2 - 2 \sqrt{3} i, \qquad 4 \left(\cos\left(- \frac{2 \pi}{3}\right) + i\,\sin\left(- \frac{2 \pi}{3}\right)\right), \qquad 4 e^{- \frac{2 \pi}{3}\,i}\]
***********************************************************************************************

Macierze

Wyznacznik

zadanie = gz.wyznacznik(wymiar=choice([4,5,6]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:30].replace('A', '*A*')))
display(Latex(zadanie[0][30:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace("$", "$$")))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć wyznacznik macierzy A

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-1 & 2 & 3 & 1\\1 & -2 & -2 & -1\\1 & -2 & 3 & -1\\0 & -1 & -2 & 1\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det(A)= 0\]

Równanie macierzowe

Hide code cell source
print("\033[34m** Zadanie **" + '*' * 81 + '\033[0m')
zadanie = gz.rownanie_macierzowe()
display(Markdown(zadanie[0].split(':')[0]))
display(Latex(zadanie[0].split(':')[1]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_3 = zadanie
** Zadanie ***********************************************************************************

Rozwiązać równanie

\[\begin{split} \left[\begin{matrix}0 & 1 & 0 & 0 & 1\\0 & 2 & 2 & 2 & 2\end{matrix}\right]\cdot \left[\begin{matrix}1 & -1 & 0 & 1 & 0\\-2 & -2 & 0 & 0 & 1\end{matrix}\right]^T + 3X= \left[\begin{matrix}-1 & 2\\0 & -1\\0 & 0\\2 & 0\\2 & 2\end{matrix}\right]^T \cdot \left[\begin{matrix}-2 & 1\\0 & -1\\-1 & 0\\-1 & 1\\1 & 1\end{matrix}\right] \cdot X \end{split}\]
** Rozwiązanie ********************************************************************************
\[\begin{split} \left[\begin{matrix}-1 & -1\\0 & -2\end{matrix}\right] + 3X= \left[\begin{matrix}2 & 3\\-2 & 5\end{matrix}\right] \cdot X, \quad \left[\begin{matrix}-1 & -1\\0 & -2\end{matrix}\right] = \left[\begin{matrix}-1 & 3\\-2 & 2\end{matrix}\right] \cdot X ,\quad X=\frac{1}{4}\left[\begin{matrix}-2 & 4\\-2 & 0\end{matrix}\right].\end{split}\]

Wyznacznik z parametrem

Hide code cell source
zadanie = gz.wyznacznik_parametr(wymiar=choice([2, 3, 4]), gotowiec=True)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:91].replace('\\ ', ' ').replace('$', '*')))
display(Latex(zadanie[0][91:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Dla jakich rzeczywistych wartości parametru x wyznacznik macierzy A jest różny od zera?

\[\begin{split} \textnormal{A=} \left[\begin{matrix}3 & x - 4\\x + 3 & x + 3\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det A=- x^{2} + 4 x + 21 \neq 0, \quad x\neq -3, \ x\neq 7, \ \]

Macierz odwrotna z parametrem

Hide code cell source
zadanie = gz.macierz_odwrotna_parametr(wymiar=choice([2, 3, 4]), gotowiec=True)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:79].replace('$', '*')))
display(Latex(zadanie[0][79:].split('W')[0]))
display(Markdown('W' + zadanie[0][79:].split('W')[1].replace('$', '*')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
rozwiazanie = zadanie[1].replace('$\\\\\n\t$', ' $ ').split('$')
for i in range(1, len(rozwiazanie) - 1):
    display(Latex('$$' + rozwiazanie[i] + '$$'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Dla jakich rzeczywistych wartości parametru x macierz A posiada odwrotność?

\[\begin{split} \textnormal{A=}\left[\begin{matrix}-4 & x + 1 & x + 2 & 0\\-2 & 3 & 2 & x - 4\\-2 & 1 & -2 & x - 4\\-1 & 3 & 4 & -3\end{matrix}\right] \end{split}\]

Wyznaczyć macierz odwrotną dla x=-1.

** Rozwiązanie ********************************************************************************
\[\det A=2 x^{2} - 12 x - 32\neq 0, \quad x\neq -2\ \textnormal{oraz} \ x\neq 8, \]
\[\begin{split} A(-1)= \left[\begin{matrix}-4 & 0 & 1 & 0\\-2 & 3 & 2 & -5\\-2 & 1 & -2 & -5\\-1 & 3 & 4 & -3\end{matrix}\right],\ \det A(-1)=-18,\ A^{-1}=- \frac{1}{18}\left[\begin{matrix}4 & 12 & -6 & -10\\4 & -105 & 57 & 80\\-2 & 48 & -24 & -40\\0 & -45 & 27 & 36\end{matrix}\right].\end{split}\]

Wektor własne

Hide code cell source
zadanie = gz.wartosci_wlasne(wymiar=choice([2, 3, 4]), zespolone=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:51]))
display(Latex(zadanie[0][51:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wartości własne i wektory własne macierzy

\[\begin{split} \textnormal{A=} \left[\begin{matrix}0 & 0\\0 & 3\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{2} - 3 \lambda\]

Wartości własne

\[ \left\{ 0 : 1, \ 3 : 1\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( 0, \ 1, \ \left[ \left[\begin{matrix}1\\0\end{matrix}\right]\right]\right), \ \left( 3, \ 1, \ \left[ \left[\begin{matrix}0\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Rząd macierzy

Hide code cell source
zadanie = gz.rzad_macierzy()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:25].replace('A', '*A*')))
display(Latex(zadanie[0][25:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace("$", "$$")))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć rząd macierzy A

\[\begin{split} \textnormal{A=} \left[\begin{matrix}3 & -2 & 0 & -2 & -1 & 3\\1 & 2 & 3 & -1 & 0 & -1\\1 & 1 & -1 & 3 & 1 & -1\\1 & 0 & -2 & -2 & -1 & -2\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[R(A)= 4\]

Diagonalizacja macierzy

Hide code cell source
zadanie = gz.diagonalizacja_macierzy(choice([2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:53]))
display(Latex(zadanie[0][53:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
display(Markdown("Diagonalizacja:"))
try:
    display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[5]
                  + '\quad ' + (zadanie[1].split(', \quad')[1]).split("$")[7] + "$$"))
except Exception:
    display(Markdown("Macierz nie jest diagonalizowalna"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Przeprowadzić diagonalizację macierzy (jeśli możliwa)

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-2 & 0\\2 & -1\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{2} + 3 \lambda + 2\]

Wartości własne

\[ \left\{ -2 : 1, \ -1 : 1\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( -2, \ 1, \ \left[ \left[\begin{matrix}- \frac{1}{2}\\1\end{matrix}\right]\right]\right), \ \left( -1, \ 1, \ \left[ \left[\begin{matrix}0\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Diagonalizacja:

\[\begin{split}A = P\,D\,P^{-1}: \quad P=\left[\begin{matrix}-1 & 0\\2 & 1\end{matrix}\right],\quad D=\left[\begin{matrix}-2 & 0\\0 & -1\end{matrix}\right]\end{split}\]

Diagonalizacja z wielokrotnymi wartościami własnymi

Hide code cell source
zadanie = gz.diagonalizacja_macierzy_z_wielokrotnym_wartosciami_wlasnymi(choice([2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:39]))
display(Latex(zadanie[0][39:]))
print("\033[34m*\033[0m" * 95)
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
display(Markdown("Diagonalizacja:"))
try:
    display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[5]
                  + '\quad ' + (zadanie[1].split(', \quad')[1]).split("$")[7] + "$$"))
except Exception:
    display(Markdown("Macierz nie jest diagonalizowalna"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Przeprowadzić diagonalizację macierzy

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-1 & 0 & 1\\2 & 1 & -1\\-2 & 0 & 2\end{matrix}\right] \end{split}\]
***********************************************************************************************
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{3} - 2 \lambda^{2} + \lambda\]

Wartości własne

\[ \left\{ 0 : 1, \ 1 : 2\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( 0, \ 1, \ \left[ \left[\begin{matrix}1\\-1\\1\end{matrix}\right]\right]\right), \ \left( 1, \ 2, \ \left[ \left[\begin{matrix}0\\1\\0\end{matrix}\right], \ \left[\begin{matrix}\frac{1}{2}\\0\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Diagonalizacja:

\[\begin{split}A = P\,D\,P^{-1}: \quad P=\left[\begin{matrix}1 & 0 & 1\\-1 & 1 & 0\\1 & 0 & 2\end{matrix}\right],\quad D=\left[\begin{matrix}0 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right]\end{split}\]

Regresja

zadanie = gz.regresja(stopien=1, nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
temp = zadanie[1].split('_L')[0].split('[\n\t\t')[1] + '_L'
display(Latex(f'$${temp}$$'))
display(Latex(f"$${zadanie[1].split('_L')[1][12:].split('raisebox')[0][:-11]}$$"))
display(Markdown(f'![](./pics//regresja1234.png)'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć prostą regresji dla punktów

\[ (3,1),\ (-4,-4),\ (-3,0),\ (-2,-1),\ (-1,-2). \]
** Rozwiązanie ********************************************************************************
\[\begin{split}\left[\begin{matrix}3 & 1\\-4 & 1\\-3 & 1\\-2 & 1\\-1 & 1\end{matrix}\right] \cdot \left[\begin{matrix} a \\ b \end{matrix}\right] \simeq \left[\begin{matrix}1\\-4\\0\\-1\\-2\end{matrix}\right] \quad \Biggm/ \cdot \left(\left(A^T A \right)^{-1} A^T \right)_L\end{split}\]
\[\begin{split}\left[\begin{matrix} a \\ b \end{matrix}\right] = \left[\begin{matrix} \frac{1}{2} \\ - \frac{1}{2} \end{matrix}\right]\end{split}\]

Układy równań liniowych

Układ Cramera

Hide code cell source
zadanie = gz.uklad_Cramera(choice([2, 3, 4, 5]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].split('$')[0] +
                 '*' + zadanie[0].split('$')[1].split('$')[0] + '*'))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Z układu równań wyznaczyć niewiadomą y

\[\begin{split} \left\{ \begin{matrix} x + 2 y = -2 \\ 2 x - 2 y - 3 z = 0 \\ x + 4 y + 2 z = -3 \\ \end{matrix} \right. \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det(A) = -6,\ \det(A_y)=5,\ y = - \frac{5}{6}\]

Układ nieoznaczony

Hide code cell source
zadanie = gz.uklad_rownan_nieoznaczony()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\ ', ' ')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Rozwiązać układ równań. Jeśli możliwe podać trzy przykładowe rozwiązania. Jedno rozwiązanie sprawdzić.

\[\begin{split} \left\{ \begin{matrix} - 3 t - x - 2 y + 3 z = 4 \\ - t - x - 2 y + 2 z = 2 \\ - t + x - z = -4 \\ - t + x + y - z = -2 \\ t - x - 2 y + z = 0 \\ \end{matrix} \right. \end{split}\]
** Rozwiązanie ********************************************************************************
\[\left\{ t = \frac{z}{2} - 1, \ x = \frac{3 z}{2} - 5, \ y = 2\right\}\]

Geometria analityczna

Równanie prostej

Hide code cell source
zadanie = gz.rownanie_prostej()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie prostej przechodzącej przez punkty

\[ P_1 = (1, 1, 3), \quad P_2 = (4, -1, -3).\]

Obliczyć odległość wyznaczonej prostej od punktu

\[ P_3 = (-2, -3, 4).\]
** Rozwiązanie ********************************************************************************
\[l\colon \frac{x - 1}{3}= \frac{y - 1}{-2}= \frac{z - 3}{-6}; \qquad d(P_3,l) = 5\]

Równanie płaszczyzny

Hide code cell source
zadanie = gz.rownanie_plaszczyzny()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie płaszczyzny przechodzącej przez punkty

\[ P_1 = (4, 4, 4), \quad P_2 = (-3, 2, 2), \quad P_3 = (-2, 4, 5).\]

Obliczyć odległość wyznaczonej płaszczyzny od punktu

\[ P_4 = (-2, 4, 5).\]
** Rozwiązanie ********************************************************************************
\[\pi\colon - 2 x + 19 y - 12 z - 20=0; \qquad d(P_4,\pi) = 0\]

Punkty symetryczny do płaszczyzny

Hide code cell source
zadanie = gz.punkt_symetryczny_do_plaszczyzny()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].split('$')[0]))
display(Latex('$$' + zadanie[1].split('$')[1] + '$$'))
display(Markdown(zadanie[1].split('$')[4][2:]))
display(Latex('$$' + zadanie[1].split('$')[5] + ' \quad ' + zadanie[1].split('$')[3] + '$$'))
display(Markdown(zadanie[1].split('$')[6][6:]))
display(Latex('$$' + zadanie[1].split('$')[7] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć punkt symetryczny do punktu

\[ P = (3, -1, -3)\]

względem płaszczyzny

\[ \pi\colon x - y + z + 5 = 0.\]
** Rozwiązanie ********************************************************************************

Prosta prostopadła:

\[ \frac{x - 3}{1}= \frac{y + 1}{-1}= \frac{z + 3}{1}= t,\]


Punkt przecięcia to:

\[P_p =(1,1,-5), \quad t_p=-2\]

Punkt symetryczny to:

\[P_s = (-1,3,-7)\]

Punkty symetryczny do prostej

Hide code cell source
zadanie = gz.punkt_symetryczny_do_prostej()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].split('$')[0]))
display(Latex('$$' + zadanie[1].split('$')[1].split('\\quad')[0] + '$$'))
display(Markdown(zadanie[1].split('$')[2][8:]))
display(Latex('$$' + zadanie[1].split('$')[3] + ' \quad ' + zadanie[1].split('$')[1].split('\quad')[1] + '$$'))
display(Markdown(zadanie[1].split('$')[4][12:]))
display(Latex('$$' + zadanie[1].split('$')[5] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć punkt symetryczny do punktu

\[ P = (3, 3, 5)\]

względem prostej

\[ l\colon \frac{x - 1}{1}= \frac{y - 5}{-1}= \frac{z + 1}{3}.\]
** Rozwiązanie ********************************************************************************

Płaszczyzna prostopadła:

\[\pi\colon x - y + 3 z - 15 = 0, \]

Punkt przecięcia to:

\[P_p =(3,3,5), \quad t_p=2\]

Punkt symetryczny to:

\[P_s = (3,3,5)\]

Proste skośne

Hide code cell source
zadanie = gz.odleglosc_prostych_skosnych()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Latex('$$' + (zadanie[0].split('\n\t')[3]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4][3:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('Płaszczyzna zawierająca *l<sub>2</sub>* i równoległa do *l<sub>1</sub>* to'))
display(Latex('$$' + (zadanie[1].split('$')[5]) + '$$'))
display(Markdown('Odległość prostych skośnych to'))
display(Latex('$$' + (zadanie[1].split('$')[7]) + '$$'))
display(Markdown('Punkty realizujące minimalną odległość to'))
display(Latex('$$' + (zadanie[1].split('$')[9]).replace('\\ ', '\qquad ') + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć odległość prostych skośnych

\[ l_1\colon \frac{x - 2}{2}=\frac{y + 3}{4}=\frac{z - 2}{4}, \quad \]
\[ l_2\colon \frac{x + 2}{2}=\frac{y - 2}{2}=\frac{z - 5}{3}.\]

Wyznaczyć punkty realizujące minimalną odległość.

** Rozwiązanie ********************************************************************************

Płaszczyzna zawierająca l2 i równoległa do l1 to

\[\pi\colon 4 x + 2 y - 4 z + 24=0\]

Odległość prostych skośnych to

\[d(l_1,l_2)=3;\]

Punkty realizujące minimalną odległość to

\[ P_3=(10,13,18),\qquad P_4=(8,12,20)\]

Kąty w trójkącie

Hide code cell source
zadanie = gz.katy_w_trojkacie(prosty=choice([False, True]), calkowite=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown('Wyznaczyć miary kątów wewnętrznych trójkąta *ABC*, gdzie'))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown('Sprawdzić, czy sumują się do 180\u00b0'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć miary kątów wewnętrznych trójkąta ABC, gdzie

\[ A = (-3, 4, 5),\ B = (4, 0, -3),\ C = (3, 2, 2)\]

Sprawdzić, czy sumują się do 180°

** Rozwiązanie ********************************************************************************
\[\alpha \approx 21.45^{\circ},\ \beta \approx 27.86^{\circ},\ \gamma \approx 130.70^{\circ}.\]

Pole trójkąta

Hide code cell source
zadanie = gz.pole_trojkata(calkowite=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    f'Wyznaczyć pole  trójkąta *ABC* oraz długość wysokości opuszczonej z wierzchołka *{zadanie[0].split("ka ")[1].split(" dla")[0]}*' + ' dla'))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].replace('\\ \\', '\qquad') + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć pole trójkąta ABC oraz długość wysokości opuszczonej z wierzchołka C dla

\[ A = (-1, 1, 5),\ B = (-1, 1, 1),\ C = (-1, -1, 5)\]
** Rozwiązanie ********************************************************************************
\[P=4,\qquad h_C=2\]

Płaszczyzna styczna

Hide code cell source
zadanie = gz.plaszczyzna_styczna()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    f'Wyznaczyć płaszczyznę styczną do powierzchni'))
display(Latex('$$' + (zadanie[0].split('$$')[1]) + '$$'))
display(Markdown('w punkcie'))
display(Latex('$' + zadanie[0].split('punkcie ')[1] + '$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].replace('\\ \\', '\qquad') + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć płaszczyznę styczną do powierzchni

\[f(x,y)=- 4 x \left(y + 2\right) + 2 y^{2} \left(x - 3\right)^{2}\]

w punkcie

\[P=(5,1,f(5,1)).\]
** Rozwiązanie ********************************************************************************
\[z = - 4 x - 4 y - 28\]

Granice

Granice ciągów

Hide code cell source
zadanie = gz.granica_ciagu(typ=choice([0, 1, 2, 3]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_1 = zadanie
** Zadanie ************************************************************************************

Obliczyć granicę

\[ \lim\limits_{n \rightarrow \infty} \frac{- 3 n^{3} - n + 5}{- 3 n^{5} + 4 n^{3} + 4 n^{2} - 2 n - 1} \]
** Rozwiązanie ********************************************************************************
\[0\]

Granice funkcji

Hide code cell source
zadanie = gz.granica_funkcji(typ=2)  # typ=choice(range(12))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Obliczyć granicę

\[ \lim\limits_{{x \rightarrow 1^{+}}} \frac{\ln{\left(x \right)}}{\sqrt{x^{2} - 1}} \]
** Rozwiązanie ********************************************************************************
\[0\]

Asymptoty

zadanie = zadanie = gz.asymptoty(typ=choice(range(1,11)))  # typ=choice(range(1,11))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split('\\\\')[0]))
for i in range(1,len(zadanie[1].split('\\\\'))):
    display(Markdown((zadanie[1].split('\\\\')[i].split('$')[0])))
    display(Latex('$' + zadanie[1].split('\\\\')[i].split('$')[1] + '$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wszystkie asymptoty funkcji

\[ f(x)= x - \operatorname{atan}{\left(x \right)} + 1.\]
** Rozwiązanie ********************************************************************************
\[D_f\colon \mathbb{R}.\]

Asymptota ukośna w minus nieskończoności o równaniu

\[y=x + 1 + \frac{\pi}{2}.\]

Asymptota ukośna w plus nieskończoności o równaniu

\[y=x - \frac{\pi}{2} + 1.\]

Styczna i normalna

Hide code cell source
zadanie = gz.styczna_normalna(typ=choice([1, 2]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown('w punkcie o współrzędnej'))
display(Latex('$ x_0' + zadanie[0].split('x_0')[1]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('Prosta styczna: '))
display(Latex('$$' + zadanie[1].split('$')[1][:-1] + '$$'))
display(Markdown('Prosta normalna: '))
display(Latex('$$' + zadanie[1].split('$')[3] + '$$'))
zadanie_3 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie stycznej i normalnej do wykresu funkcji

\[ f(x) = \frac{e^{x^{2} - x - 2}}{2 - 2 x}\]

w punkcie o współrzędnej

\[ x_0 = 2.\]
** Rozwiązanie ********************************************************************************

Prosta styczna:

\[y = \frac{3}{2} - x\]

Prosta normalna:

\[y = x - \frac{5}{2}\]

Monotonicznoźć

Hide code cell source
zadanie = gz.monotonicznosc(choice([1, 2, 3]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('$$' + zadanie[1].split('$')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[3].split('\\implies')[0] + '\\implies' + '$$'))
display(Markdown('$$' + '\\implies' + zadanie[1].split('$')[3].split('\\implies')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[5].split('\\implies')[0] + '\\implies' + '$$'))
display(Markdown('$$' + '\\implies' + zadanie[1].split('$')[5].split('\\implies')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[7].replace('\\left\\{', '\\left\\lbrace').replace('\\right\\}',
                                                                                                '\\right\\rbrace') + '$$'))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Zbadać monotoniczność i ekstrema funkcji

\[ f(x)=\frac{- x^{2} + 2 x + 2}{3 x + 3} \]
** Rozwiązanie ********************************************************************************

$$f’(x)=- \frac{x \left(x + 2\right)}{3 \left(x + 1\right)^{2}}$$

$$f’(x) > 0 \textnormal{ dla: }x > -2 \wedge x < 0 \wedge x \neq -1 \implies$$

$$\implies f(x) \textnormal{ rośnie dla } x \in \left(-2,-1 \right)\textnormal{ oraz } x \in \left(-1,0 \right) $$

$$f’(x) < 0 \textnormal{ dla: }0 < x \vee x < -2 \implies$$

$$\implies f(x) \textnormal{ maleje dla } x \in \left( -\infty, -2 \right)\textnormal{ oraz } x \in \left(0, \infty \right) $$

$$f’(x) = 0 \textnormal{ dla } x \in \left\lbrace -2, \ 0\right\rbrace \implies f_{\min}\left(-2\right) = 2 \textnormal{ oraz } f_{\max}\left(0\right) = \frac{2}{3}$$

zadanie_5 = gz.asymptoty(typ=6)
zadanie_5
('Wyznaczyć wszystkie asymptoty funkcji\n\t\\[\n\t\tf(x)= \\frac{- x^{2} + e^{x}}{2 x}.\n\t\\]\n',
 '$D_f\\colon \\mathbb{R}\\setminus \\left\\{0\\right\\}.$\\\\Asymptota pionowa dwustronna w $x_0=0.$ \\\\Asymptota ukośna w minus nieskończoności o równaniu $y=- \\frac{x}{2}.$ ')

Całki nieoznaczone

Przez podstawianie i przez części

Hide code cell source
zadanie = gz.calka_nieoznaczona(typ=choice([1, 2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$' + zadanie[1].split('=')[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć całkę

\[ \int \sqrt{x + 3} \left(2 x - 2\right) \, dx \]
** Rozwiązanie ********************************************************************************
\[ \frac{4 \left(x + 3\right)^{\frac{3}{2}} \left(3 x - 11\right)}{15} + C\]

Wymierne

Hide code cell source
zadanie = gz.calka_wymierna(wlasciwy=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć całkę

\[ \int \frac{x^{2} - 3 x + 15}{x^{3} - 4 x^{2} - 3 x + 18} \, dx \]
** Rozwiązanie ********************************************************************************
\[\int \left(\frac{1}{x + 2} + \frac{3}{\left(x - 3\right)^{2}}\right)\,dx = \ln{\left(x + 2 \right)} - \frac{3}{x - 3} + C\]

Całki oznaczone

Pole obszaru

Hide code cell source
zadanie = gz.pole_obszaru(typ=choice([1, 2, 3, 4, 5]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].replace('\\[', '$$').replace('\\]', '$$')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].replace('$', '$$').replace('\,', '')))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć pole obszaru ograniczonego wykresami krzywych $$ f(x) = 2 x^{2} - x \quad \textnormal{ oraz } \quad g(x) = 2 - x $$

** Rozwiązanie ********************************************************************************

Pole obszaru to $$\int\limits_{-1}^{1}\left(2 - 2 x^{2}\right)dx = \frac{8}{3}$$

Całki podwójne

Po trójkącie

Hide code cell source
zadanie = gz.calka_podwojna(typ=1, nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].replace('\\,', '').replace('$', '*', ).replace('**', '$$', 2)))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
img1 = open(f'pics/calka_podwojna1234x.png', 'rb').read()
wi1 = widgets.Image(value=img1, format='jpg', width=300, height=400)
img2 = open(f'pics/calka_podwojna1234y.png', 'rb').read()
wi2 = widgets.Image(value=img2, format='jpg', width=300, height=400)
a = [wi1, wi2]
wid = widgets.HBox(a)
display(wid)
print(len(zadanie[1].split('$')))
if len(zadanie[1].split('$')) == 5:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
else:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
    display(Markdown(f'Względem *{zadanie[1].split("$")[5]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[7].split('$')[0] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć $$\iint\limits_D\left(- 2 x - 2 y\right)dxdy$$ gdzie D - trójkąt ABC dla A=(0,-2), B=(-3,-3), C=(0,0)

** Rozwiązanie ********************************************************************************
9

Względem Ox:

$$\int\limits_{-3}^{0}\left(\int\limits_{\frac{x}{3} - 2}^{x}\left(- 2 x - 2 y\right)dy\right)dx =\ldots=\int\limits_{-3}^{0}\left(- \frac{20 x^{2}}{9} - \frac{16 x}{3} + 4\right)dx = \ldots = 16$$

Względem Oy:

$$\int\limits_{-3}^{-2}\left(\int\limits_{y}^{3 y + 6}\left(- 2 x - 2 y\right)dx\right)dy + \int\limits_{-2}^{0}\left(\int\limits_{y}^{0}\left(- 2 x - 2 y\right)dx\right)dy =\ldots=\int\limits_{-3}^{-2}\left( - 12 y^{2} - 48 y - 36 \right)dy + \int\limits_{-2}^{0}\left( 3 y^{2} \right)dy = \ldots = 16$$

Po obszarze ograniczonym krzywymi

Hide code cell source
zadanie = gz.calka_podwojna(typ=2, nr_zadania=1111)  # nr by wykluczyć zduplikowanie wykresu
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    zadanie[0].split('krzywymi')[0].replace('\\,', '').replace('$', '*', ).replace('**', '$$', 2) + 'krzywymi'))
display(Markdown('$$' + zadanie[0].split('$')[7] + '\\quad \\text{' + zadanie[0].split('$')[8][1:] + '} \\quad ' +
                 zadanie[0].split('$')[9] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
img1 = open(f'pics/calka_podwojna1111x.png', 'rb').read()
wi1 = widgets.Image(value=img1, format='jpg', width=300, height=400)
img2 = open(f'pics/calka_podwojna1111y.png', 'rb').read()
wi2 = widgets.Image(value=img2, format='jpg', width=300, height=400)
a = [wi1, wi2]
wid = widgets.HBox(a)
display(wid)
print(len(zadanie[1].split('$')))
if len(zadanie[1].split('$')) == 5:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
else:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
    display(Markdown(f'Względem *{zadanie[1].split("$")[5]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[7].split('$')[0] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć $$\iint\limits_D\left(x + \frac{y}{2}\right)dxdy$$ gdzie D - obszar ograniczony krzywymi

$$y=2 x^{2} - 3 x\quad \text{ oraz } \quad y=x$$

** Rozwiązanie ********************************************************************************
9

Względem Ox:

$$\int\limits_{0}^{2}\left(\int\limits_{2 x^{2} - 3 x}^{x}\left(x + \frac{y}{2}\right)dy\right)dx =\ldots=\int\limits_{0}^{2}\left(- x^{4} + x^{3} + 2 x^{2}\right)dx = \ldots = \frac{44}{15}$$

Względem Oy:

$$\int\limits_{-9/8}^{0}\left(\int\limits_{\frac{3}{4} - \frac{\sqrt{8 y + 9}}{4}}^{\frac{\sqrt{8 y + 9}}{4} + \frac{3}{4}}\left(x + \frac{y}{2}\right)dx\right)dy + \int\limits_{0}^{2 }\left(\int\limits_{y}^{\frac{\sqrt{8 y + 9}}{4} + \frac{3}{4}}\left(x + \frac{y}{2}\right)dx\right)dy =\ldots=\int\limits_{-9/8}^{0}\left(\frac{y \sqrt{8 y + 9}}{4} + \frac{3 \sqrt{8 y + 9}}{8}\right)dy + \int\limits_{0}^{2}\left(- y^{2} + \frac{y \sqrt{8 y + 9}}{8} + \frac{5 y}{8} + \frac{3 \sqrt{8 y + 9}}{16} + \frac{9}{16}\right)dx = \ldots = \frac{44}{15}$$

Szeregi Fouriera

zadanie = gz.szereg_Fouriera(
    typ_l=choice([0, 1, 2, 3, 4]),
    typ_p=choice([0, 1, 2, 3, 4]),
    bez_wykresu=True,
    tylko_koncowy=True,
    nr_zadania=123)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0]))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
display(Markdown(zadanie[0].split('\n')[7].replace('$', '$$')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].split('$')[1] + '$'))
display(Latex('$' + zadanie[1].split('$')[3] + '$'))
display(Markdown(f'![](./pics//szereg_Fouriera_{123}_funkcja.png)'))
display(Markdown(f'![](./pics//szereg_Fouriera_{123}_inf.png)'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Rozwinąć w szereg Fouriera funkcję

\[\begin{split} f(x)=\left\{\begin{matrix} - \sin{\left(x \right)} & \textnormal{ dla } & x\in\left[-1,0\right)\\ 0 & \textnormal{ dla } & x\in\left[0,1\right) \end{matrix}\right. \end{split}\]

o okresie zasadniczym $$2T=2.$$ Naszkicować wykres funkcji, do której zbieżny jest uzyskany szereg.

** Rozwiązanie ********************************************************************************
\[a_0=1 - \cos{\left(1 \right)},\quad a_n=\frac{\left(-1\right)^{n} \cos{\left(1 \right)} - 1}{\pi^{2} n^{2} - 1},\quad b_n=\frac{\left(-1\right)^{n} \pi n \sin{\left(1 \right)}}{\pi^{2} n^{2} - 1},\]
\[S(x) = - \frac{\pi \sin{\left(1 \right)} \sin{\left(\pi x \right)}}{-1 + \pi^{2}} + \frac{2 \pi \sin{\left(1 \right)} \sin{\left(2 \pi x \right)}}{-1 + 4 \pi^{2}} - \frac{3 \pi \sin{\left(1 \right)} \sin{\left(3 \pi x \right)}}{-1 + 9 \pi^{2}} + \frac{\left(-1 - \cos{\left(1 \right)}\right) \cos{\left(\pi x \right)}}{-1 + \pi^{2}} + \frac{\left(-1 + \cos{\left(1 \right)}\right) \cos{\left(2 \pi x \right)}}{-1 + 4 \pi^{2}} + \frac{\left(-1 - \cos{\left(1 \right)}\right) \cos{\left(3 \pi x \right)}}{-1 + 9 \pi^{2}} - \frac{\cos{\left(1 \right)}}{2} + \frac{1}{2} + \dots \]


Ustaw nazwy

Wskazówka

Nazwy mogą być puste, tzn. ‘’. Nie wszystkie, bo na ich podstawie tworzona jest nazwa pliku.

‘kolor_odpowiedzi’ jest ważny dla pliku tex:

  • ‘red’ - odpowiedzi ukryte, ale dostępne po kliknięciu,

  • ‘white’ - ukrywa, ale zostawia miejsce,

  • ‘brak’ - ukrywa i chowa miejsce,

  • dla innych kolorów odpowiedzi są pokazywane, ale można je ukryć po kliknięciu.

Dlatego potrzebna jest dwukrotna kompilacja i potrzebny jest czytnik pdf z obsługą warst i JavaScript. Zalecam Adobe Acrobat Reader

# bez podkreśleń !!! bo są błędy w kompilacji z podkreśleniami
kierunek = 'Teleinformatyka'  # np. AiR  
grupa = 'Grupa-2'  # np. Grupa-11
przedmiot = 'Wprowadzenie do analizy'  # np. Algebra
semestr = 'Sem 1'  # np. Semestr-1 
kolokwium = 'Kol 1'  # np. Kolokwium nr 2
data = '03 grudnia 2024'  # tego już w nazwie pliku nie będzie
kolor_odpowiedzi = 'brak'

nazwa_pliku = f'{kierunek}-{grupa}-{przedmiot}-{semestr}-{kolokwium}'
nazwa_pliku
'Teleinformatyka-Grupa-2-Wprowadzenie do analizy-Sem 1-Kol 1'

Generuj plik LaTeX z wybranych zadań

Wskazówka

Wynik jest gotową zawartością pliku LaTeX.

W mybinder (interaktywna sesja) można skopiować.

Kompilować dwukrotnie pdflatex.

W przypadku zadań z obrazkami trzeba też je pobierać w odpowiednie miejsce.

Lepiej po prostu wygenerować pdf poniżej.

# Wynik jest gotową zawartością pliku LaTeX. Można skopiować i wkleić. 
# Kompilować dwukrotnie pdflatex.
LaTeX_source = gz.generuj_LaTeX(kierunek,
                                grupa,
                                przedmiot,
                                semestr,
                                kolokwium,
                                data,
                                kolor_odpowiedzi,
                                zadanie_1, zadanie_2, zadanie_3, zadanie_4, zadanie_5)
print(LaTeX_source)
% !TeX spellcheck = pl_PL-Polish
\documentclass[a4paper,12pt]{article}
\linespread{1.3} %odstepy miedzy liniami
\usepackage[a4paper, lmargin=2cm, rmargin=2cm, tmargin=2cm, bmargin=2cm]{geometry}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{color}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{float}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{ocgx}
\usepackage{polski}
\usepackage{tcolorbox}
\tcbuselibrary{most}
\tcbuselibrary{skins}
\tcbuselibrary{raster}
% brak - bez odpowiedzi i bez miejsca, white - bez odpowiedzi z miejscem, red = odpowiedzi ukryte ale dostepne
\newcommand{\kolorodpowiedzi}{brak}
\renewcommand{\footrulewidth}{0.4pt}% linia pozioma na końcu strony - default is 0pt
\DeclareFontShape{OMX}{cmex}{m}{n}
    {<-7.5> cmex7
    <7.5-8.5> cmex8
    <8.5-9.5> cmex9
    <9.5-> cmex10}{}
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}


\newcommand{\ukryte}{1}  % domyślnie odpowiedzi są do pokazywania po kliknięciu
\ifthenelse{\equal{\kolorodpowiedzi}{red}}  % ukrywamy od pokazywania gdy kolor jest red
	{\renewcommand{\ukryte}{0}}{}

\newcommand{\zOdpowiedziami}[3]{
	\ifthenelse{\equal{#1}{brak}}{}{
		\ifthenelse{\equal{#1}{white}}{\vphantom{#3}}{
			\switchocg{#2}{\textcolor{\kolorodpowiedzi}{\\Rozwiązanie: }}
				\begin{ocg}{Warstwa odpowiedzi}{#2}{\ukryte}
					\textcolor{\kolorodpowiedzi}{#3}
				\end{ocg}}}}

\pdfinfo{/Author (https://generator-zadan.readthedocs.io)}

\begin{document}
    \pagestyle{fancy}
    \setlength{\headheight}{27.29453pt}
    \fancyhead{}
    \fancyhead[L]{\textbf{Teleinformatyka\\Wprowadzenie do analizy - Grupa-2}}
    \fancyhead[R]{\textbf{Kol 1\\ 03 grudnia 2024}}
    \fancyfoot{}
    \fancyfoot[R]{\tiny\textbf{7 grudnia 2024, 19:53}}
%    \hspace{1cm}
    \begin{enumerate}[label= \textbf{Zadanie \arabic*. }, leftmargin=1cm, align=left, itemsep=0pt]
		\item Obliczyć granicę
			\[
				\lim\limits_{n \rightarrow \infty} \frac{- 3 n^{3} - n + 5}{- 3 n^{5} + 4 n^{3} + 4 n^{2} - 2 n - 1} 
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg0}
				{$0$}

		\item Wyznaczyć wszystkie asymptoty funkcji
			\[
				f(x)= x - \operatorname{atan}{\left(x \right)} + 1.
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg1}
				{$D_f\colon \mathbb{R}.$\\Asymptota ukośna w minus nieskończoności o równaniu $y=x + 1 + \frac{\pi}{2}.$ \\Asymptota ukośna w plus nieskończoności o równaniu $y=x - \frac{\pi}{2} + 1.$ }

		\item Wyznaczyć równanie stycznej i normalnej do wykresu funkcji
			\[
				f(x) = \frac{e^{x^{2} - x - 2}}{2 - 2 x}
			\]
		 w punkcie $x_0 = 2.$
			\zOdpowiedziami{\kolorodpowiedzi}{ocg2}
				{Styczna: $y = \frac{3}{2} - x,$ \quad
			Normalna: $y = x - \frac{5}{2}$}

		\item Zbadać monotoniczność i ekstrema funkcji
			\[
				f(x)=\frac{- x^{2} + 2 x + 2}{3 x + 3} 
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg3}
				{$f'(x)=- \frac{x \left(x + 2\right)}{3 \left(x + 1\right)^{2}}$\newline
			$f'(x) > 0 \textnormal{ dla: }x > -2 \wedge x < 0 \wedge x \neq -1 \implies f(x) \textnormal{ rośnie dla } x \in \left(-2,-1  \right)\textnormal{ oraz } x \in \left(-1,0  \right) $\newline
			$f'(x) < 0 \textnormal{ dla: }0 < x \vee x < -2 \implies f(x) \textnormal{ maleje dla } x \in \left( -\infty, -2  \right)\textnormal{ oraz } x \in \left(0, \infty  \right) $\newline
			$f'(x) = 0 \textnormal{ dla } x \in \left\{ -2, \  0\right\} \implies f_{\min}\left(-2\right) = 2 \textnormal{ oraz } f_{\max}\left(0\right) = \frac{2}{3}$}

		\item Rozwinąć w szereg Fouriera funkcję 
			\[
				f(x)=\left\{\begin{matrix}
					- \sin{\left(x \right)} & \textnormal{ dla } & x\in\left[-1,0\right)\\
					0 & \textnormal{ dla } & x\in\left[0,1\right)
				\end{matrix}\right.
			\]
		o okresie zasadniczym $2T=2.$ Naszkicować wykres funkcji, do której zbieżny jest uzyskany szereg.
			\zOdpowiedziami{\kolorodpowiedzi}{ocg4}
				{$a_0=1 - \cos{\left(1 \right)},\quad a_n=\frac{\left(-1\right)^{n} \cos{\left(1 \right)} - 1}{\pi^{2} n^{2} - 1},\quad b_n=\frac{\left(-1\right)^{n} \pi n \sin{\left(1 \right)}}{\pi^{2} n^{2} - 1},$\\
				$S(x) = - \frac{\pi \sin{\left(1 \right)} \sin{\left(\pi x \right)}}{-1 + \pi^{2}} + \frac{2 \pi \sin{\left(1 \right)} \sin{\left(2 \pi x \right)}}{-1 + 4 \pi^{2}} - \frac{3 \pi \sin{\left(1 \right)} \sin{\left(3 \pi x \right)}}{-1 + 9 \pi^{2}} + \frac{\left(-1 - \cos{\left(1 \right)}\right) \cos{\left(\pi x \right)}}{-1 + \pi^{2}} + \frac{\left(-1 + \cos{\left(1 \right)}\right) \cos{\left(2 \pi x \right)}}{-1 + 4 \pi^{2}} + \frac{\left(-1 - \cos{\left(1 \right)}\right) \cos{\left(3 \pi x \right)}}{-1 + 9 \pi^{2}} - \frac{\cos{\left(1 \right)}}{2} + \frac{1}{2} + \dots $\\
				\includegraphics[width = 224pt]{../pics/szereg_Fouriera_123_funkcja}
				\includegraphics[width = 224pt]{../pics/szereg_Fouriera_123_inf}
			}

    \end{enumerate}
\end{document}

Wskazówka

Poniżej można zapisać gotowy plik na dysku. Można go edytować.
W mybinder można go pobrać w menu po lewej stronie z katalogu wygenerowane. Kompilować dwukrotnie.

if not os.path.exists('wygenerowane'):
    os.makedirs('wygenerowane')
    print(" ! Tworzę katalog wygenerowane ", file=sys.stderr)
with open(f'./wygenerowane/{nazwa_pliku}.tex', 'w',
          encoding='utf-8') as LaTeX_file:
    print(LaTeX_source, file=LaTeX_file)
 ! Tworzę katalog wygenerowane 

Generuj plik Pdf z pliku Latex

Wskazówka

Można wygenerować gotowego pdf-a.

W mybinder (interaktywna sesja) plik pdf jest w menu po lewej. Można pobrać. W mybinder wszystkie pakiety LaTeX-a są zainstalowane. U siebie pewnie trzeba będzie coś doinstalować.

Kompilacja wykonuje się dwukrotnie.

Uwaga

Przy ponownej kompilacji online pliku z taką samą nazwą podgląd pdf-a w przeglądarce może pokazywać poprzednią wersję.

Trzeba wygenerowanego pdf-a pobrać na dysk lokalny i tam go oglądać. Albo podejrzeć niżej pdf-a przetworzonego na jpg.

import subprocess

for i in range(2):
    result = subprocess.run(
        'cd wygenerowane && pdflatex "' + f'{nazwa_pliku}' + '".tex',
        capture_output=True,
        shell=True)

# w razie problemów poniżej można zobaczyć komunikaty
# trzeba odkomentować 

# for i in str(result).split(', '):
#     print(i.replace('\\n', '\n'))

Uwaga

To co widać niżej to jest obraz stworzony z pdf-a. Kolor odpowiedzi jest ‘blue’ - czyli widoczne, do ukrycia po kliknięciu (w pliku pdf). Kolor można zmieniać w pliku tex.

Widoczna jest tylko pierwsza strona.

image = convert_from_path(f'wygenerowane/{nazwa_pliku}.pdf')
image[0].save(f'wygenerowane/{nazwa_pliku}.png')
display(Image(f'wygenerowane/{nazwa_pliku}.png', width=800))
_images/095d56c041d3656a925478f597cdd7a2ad9b258a19b787d031125cfc1844b8ee.png