Informazioni sulla notazione delle funzioni ramificate

Le parentesi graffe vengono utilizzate nella notazione delle definizioni di funzione con distinzione tra maiuscole e minuscole. Perseguiamo la semplice questione se questa rappresentazione possa anche essere eliminata e la funzione possa essere ridotta a una notazione che ne fa a meno. Ad esempio, la funzione

$$f: \mathbb{R} \to \mathbb{R}, f(x) = \left\{\begin{matrix} 42, & \text{falls } x = 0 \\ x, & \text{sonst} \end{matrix}\right.$$

con l'aiuto delle quattro operazioni aritmetiche di base che utilizzano un termine di una riga?


Questo è impossibile e lo dimostriamo con l'aiuto della continuità.

Consideriamo la sequenza \((x_n)\) con \(x_n = \frac{1}{n}\) . Per questa sequenza \( \lim_{ n \to \infty } x_n = \lim_{ n \to \infty } \frac{1}{n} = 0\) . Inoltre, \(\lim_{ n \to \infty } f(x_n) = \lim_{ n \to \infty } \frac{1}{n} = 0 \neq 42 = f(0)\) . Quindi \(f\) è discontinuo nel punto \(x=0\) cioè discontinuo nel suo complesso.

Poiché la somma e il prodotto delle funzioni continue sono di nuovo continue a causa delle clausole concatenate, si possono generare funzioni continue (in particolare mai \(f\) ) con l'aiuto delle quattro operazioni aritmetiche di base.

Tuttavia, se permettiamo la funzione di segno discontinuo, ad esempio, possiamo facilmente trovare una tale notazione. Quindi vale a dire

$$f: \mathbb{R} \to \mathbb{R}, f(x) = sgn^2(x-42)+42.$$

Per una funzione generale si applica \(f\) con distinzione tra maiuscole e minuscole

$$f,g,h,a: \mathbb{R} \to \mathbb{R}, f(x) = \begin{Bmatrix} g(x), & \text{falls } a(x) = 0 \\ h(x), & \text{falls } a(x) \neq 0 \end{Bmatrix} = sgn^2 \left(a(x)\right)\cdot h(x) + \left(1-sgn^2\left(a(x)\right)\right)\cdot g(x).$$

D'altra parte, se guardi le funzioni nei linguaggi di programmazione, i rami possono essere risolti. Ad esempio, in PHP la funzione signum può essere mappata con:

e367d0ca10c4f0ac43640ad7fd1b3f0d

\(f\) può anche essere visualizzato senza strutture di controllo if / else con:

e367d0ca10c4f0ac43640ad7fd1b3f0d

Se vuoi fare a meno degli operatori di confronto, puoi fare un ulteriore passo avanti e immergerti nel meraviglioso mondo degli operatori bit per bit:

e367d0ca10c4f0ac43640ad7fd1b3f0d

Indietro