Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
1) Kdyz A = 10, tak B = 2 2) Kdyz A = 20, tak B = 0.3Kolik bude B, kdyz A bude nekde mezi temi 10 a 20? B klesa linearne, mezi 2 a 0.3 je primka. Takze napr. GnuPlot mi vykresli graf, ale neukaze vzorec vypoctu. Nevedeli byste nekdo, co je toto za vypocet? Kdyztak predem diky za pripadne tipy.
Řešení dotazu:
if A1/B1=5 && A2/B2=9 then An/Bn=?
B = -0,17 * A + 3,7
if A1/B1=5 && A2/B2=9 then An/Bn=?
if 10/2 && 20/0.3 then 13.7/?dava to nejaky smysl? Myslim jako vypocet, ne jako programovani, to je jen pseudokod.
2 = 10x + y ? = 13.8x + y 0,3 = 20x + y
7 = 5000x + y ? = 5850x + y 0,01 = 6700x + y
1) Kdyz A = 10, tak B = 2 2) Kdyz A = 20, tak B = 0,3prepiseme
1) Kdyz X = 10, tak Y = 2 2) Kdyz X = 20, tak Y = 0,3Zavislost nech je linearna (priamka), Ale daj obrazok grafu, z neho sa da urcit, aka je to funkcia (linerarna, exponencionalna, …) Ak priamka:
Y = A * X + Btak pre dve zavisle hodnoty rovnakej funkcie bude vseobecne:
Y1 = A * X1 + B Y2 = A * X2 + BDosadime hodnoty:
2=A*10+B 0,3=A*20+BA riesime sustavu rovnic s dvoma neznamymi (matematika),
2=10*A+B 0,3=20*A+BPouzijeme scitaciu metodu
2 = 10 * A + B 0,3 = 20 * A + B / *(-1) --------------------------- 2 = 10 * A + B -0,3 = (-20) * A + B (scitame riadky) -0,7 = (-10) * A + B / *(-1) 0,7 = 10 * A A = 0,07 A dosadime do 1, rovnice zo zadanie: 2 = 10 * A + B 2 = 0,07 * 10 + B 2 = 0,7 + B / -0,7 B = 2 - 0,7 B = 1,3Dostali sme:
A = 0,07 B = 1,3Vysledna zavislost je:
Y = 0,7 * X + 1,3
// y = K1 * x + K2 - rovnica priamky float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2;
2.000000 = -0.170000 * 10.000000 + 3.700000 3.649000 = -0.170000 * 0.300000 + 3.700000Kod overaci:
#include <stdio.h> int main() { float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2; x3=10; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); x3=0.3; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); return 0; }
#include <stdio.h> int main() { float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2; x3=10; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); x3=20; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); return 0; }
linsolve([10*x + b - 2, 20*x + b - 0.3], (x, b))
, kde x, b
jsou importované symboly. Takže pak prostě
def fce(x): return -0.17*x + 3.7A odkud plyne předpoklad lineární závislosti? Je jasné, že Gnuplot propojí dva body přímkou. Čím jiným? Nekonečným počtem křivek? Má ta úloha opravdu lineární vztah ve svém základu?
Načež soused mě poučil, že kdyby tu ty hory nebyly, tak Slunce nemá kam zapadnout a je pořád světlo.Ale vždyť to je pravda, kdyby tady nebyla ta [neprůhledná] země pod tebou, tak vidíme Slunce i v noci -- zespodu.
10*x_1 +x_2 = 2 20*x_2 + x_2 = 0,3,což zobecníme (to chceš, jak jsem pochopil) a přepíšeme to do tvaru
a_11*x_1 + a_12*x_2 = b_1 a_21*x_1 + a_22*x_2 = b_2.Ve tvém případě je
a_11 = 10, a_12 = 1, a_21 = 20, a_22 = 1
, že ano. Nyní se zachováme jako dospělí lidé a tuto soustavu zapíšeme v maticovém tvaru:
| a_11 a_12 | |x_1| |b_1| | | | | = | | | a_21 a_22 | |x_2| |b_2|Přesuneme se někdy do roku 1750 ;) a použijeme tzv. Cramerovo pravidlo, které říká, že pro naši hledanou
x_i
platí
det A_i x_i = ---------, det Akde
det A
je determinant matice soustavy a det A_i
je determinant téže matice, ovšem nahradíme-li i-tý sloupec maticí pravých stran, tj. například
| b_1 a_12 | det A_1 = det | |. | b_2 a_22 |Determinant matice "2x2" vypočteš jako
det A = a_11*a_22 - a_21*a_12
, takže jde o rozdíl součinů diagonál v naznačeném směru. Samozřejmě platí, že determinant soustavy nesmí být nulový (matice soustavy musí být regulární).
Zcela stejně pak pro det A_1
a též det A_2
máš
| b_1 a_12 | det A_1 = det | | = b_1*a_22 - b_2*a_12, | b_2 a_22 | | a_11 b_1 | det A_2 = det | | = a_11*b_2 - a_21*b_1. | a_21 b_2 |No a teď už můžeš spočítat
x_1, x_2
, takže
det A_1 b_1*a_22 - b_2*a_12 x_1 = --------- = ----------------------- det A a_11*a_22 - a_21*a_12 det A_2 a_11*b_2 - a_21*b_1 x_2 = --------- = ----------------------- det A a_11*a_22 - a_21*a_12A to je celý algoritmus, který potřebuješ. Můžeme si zkusit dosadit tvé konkrétní numerické vstupy, pak
2*1 - 0,3*1 1,7 x_ 1 = ----------- = --- = -0,17, 10*1 - 20*1 -10 10*0,3 - 20*2 3 - 40 -37 x_2 = --------------- = ------ = ----- = 3,7 -10 -10 -10Takže máme řešení
y(x) = a*x + b = -0,17 + 3,7
.
Pro tvůj konkrétní problém, kdy máš pořád a_12 = a_22 = 1
, řešení zdegeneruje na jednodušší formu
det A_1 b_1 - b_2 x_1 = --------- = ------------- det A a_11 - a_21 det A_2 a_11*b_2 - a_21*b_1 x_2 = --------- = -------------------- det A a_11 - a_21A výsledný kód by byl zhruba něco jako
def najdi_rovnici(a_1, a_2, b_1, b_2): det_A = float(a_1 - a_2) det_A_1 = b_1 - b_2 det_A_2 = a_1*b_2 - a_2*b_1 x_1 = det_A_1/det_A x_2 = det_A_2/det_A print 'y(x) := %s*x + %s' % (x_1, x_2) return None # nebo třeba # return x_1, x_2Když v Pythonu takový kód spustím pro tvé zadání, dostanu
>>> najdi_rovnici(10, 20, 2, 0.3) y(x) := -0.17*x + 3.7Jestli jsem někde udělal chybu, sorráč, nejsem účetní. Ale princip bys měl z toho pochopit.
from numpy import linalg # Matice A, matice B ma = [[10, 1], [20, 1]] mb = [2, 0.3] res = linalg.solve(ma, mb) print(res) # Vrací [ -0.17 3.7 ] # Výpočet trvá pár mikrosekund.Analytická metoda se spočte v řádu nanosekund. Ale podobně rychle to jde i v Julii:
A = [10 1; 20 1] b = [2; 0.3] A \ b # Vrací # 2-element Vector{Float64}: # -0.17 # 3.7
Tiskni
Sdílej: