Molte volte in Linkedin (o via e-mail) è possibile trovare immagini come queste:
o questa
(per gentile concessione di https://www.linkedin.com/pulse/solve-you-genius-stebin-chacko)
Quest’ultima ci infastidisce molto. Dato che nella prima c’è solo un sistema, scritto nei simboli geometrici invece di simboli matematici.
Ma perché, nella seconda, invece di scrivere semplicemente 8 = f (2,2) ed infine «a cosa è uguale f(9,9)», utilizzare questa notazione senza senso come 2 + 2 = 8?
Tra l’altro, se vogliamo parlare della domanda in sè:
il secondo quiz è molto intuitivo.
Dovrebbe essere risolto con un algoritmo di machine learning di regressione lineare come (se non immediatamente risolvere con la matematica di base).
Ed invece il primo?
Utilizzando le derivate delle singole equazioni, può essere risolto per iterazioni.
Il codice Python di risoluzione:
# -*- coding: utf-8 -*-
“”” Equations:
s**3 = 27
t**3 + s = 24
s * t * c**2 = 96Solutions s = 3 t = 2 c = 4 “””
import numpy as np
s, t, c = 1, 1, 1 # inizializzo
print s, t, c
def J(s, t, c):
# J = cost_function = (s**3 – 27)**2 + ( t**3 + s – 24 )**2 + (s * t * c**2 – 96 )**2
# = Σ (h_i – y )²
return (s**3 – 27)**2 + ( t**3*s -24 )**2 + (s* t* c**2 – 96)**2# grad = [ ∂J/∂s, ∂J/∂t, ∂J/∂c] # Chain Rule (in a different form) f(g(x)) f’(g(x))g’(x)
alfa = .0003for i in range(40): # actualizo los parametros
deriv_s = 2* (s**3 -27)* (2*s**2) +2*(t**3* s -24)* (t**3) +2*(s* t* c**2 – 96)* (t* c**2)
s = s – alfa * deriv_s
deriv_t = 2*(t**3* s -24)* (3* t**2* s) +2*(s* t* c**2 – 96)* (s* c**2)
t = t – alfa * deriv_t
deriv_c = 2*(s* t* c**2 – 96)* (s* t* 2*c)
c = c – alfa * deriv_cprint “\r\tThe cost function is: “, J(s,t,c)
print “\t\tThe actual values of roots are:”, round(s,3), round(t,3), round(c,3)print “\nThe search roots are: “, c, s, t
“””solve c + s * t = ? “””
print “\n\t The search result is: “, c + s * t
In conclusione, ed a prescindere dalla matematica, vorremmo utilizzare correttamente linkedin (non come facebook).

