# Оценка сходства

В этом подразделе представлена количественная оценка схожести с помощью индексов схожести. Примеры приведены в `'./examples/similarity'` в корневом каталоге SAUNA.

Оценить, насколько два разных моделй схожи с помощью индексов схожести, можно с использованием возможностей SAUNA. Сначала SAUNA необходимо импортировать.&#x20;

```python
import sauna
```

Для оценки схожести требуются два экземпляра Sensitivities, содержащие чувствительности для двух разных моделей, хотя могут быть использованы и одинаковые модели для проверки корректности работы функции (ожидая единицу для индекса). В этом примере используются чувствительности собственных значений (eigenvalue) для MET1000 и Jezebel, полученные с помощью кода SCALE.

```python
sensitivities_1 = sauna.Sensitivities()
sensitivities_1.from_scale('../../models/MET1000_FC_NFP.2025.02.28T10.09.44.sdf', 'B', 'Eigenvalue')

sensitivities_2 = sauna.Sensitivities()
sensitivities_2.from_scale('../../models/Jezebel_NFP.2025.03.07T19.12.19.sdf', 'B', 'Eigenvalue')
```

Теперь можно вычислить $$E$$ и $$G$$ индексы массово с различными комбинациями.

```python
E11    = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E12    = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E21    = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
E22    = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'E')
G11    = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G12    = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G21    = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
G22    = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G')
```

Метод $$G$$ индекс может быть рассчитан с использованием выбранного набора реакций. Например, учесть те же реакции, что и в SCALE, можно следующим образом, передав список интересующих реакций в качестве аргумента.

```python
G11_x  = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G12_x  = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G21_x  = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
G22_x  = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'G', reactions = [2,4,18,102,103,104,105,106,107])
```

Финальный индекс, $$c\_k$$ требует дополнительного аргумента — ковариаций. Следовательно, их необходимо предоставить для вычисления этого индекса.

```python
covariances = sauna.Covariances()
covariances.from_excels(f'../../covariances/ENDF-B-VII.1-56/')
```

Наконец, теперь можно оценить, в какой степени неопределенности разделяются между двумя моделями.

```python
c_k11  = sauna.Analysis.compare(sensitivities_1, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'c_k', covariances = covariances)
c_k12  = sauna.Analysis.compare(sensitivities_1, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'c_k', covariances = covariances)
c_k21  = sauna.Analysis.compare(sensitivities_2, sensitivities_1, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'c_k', covariances = covariances)
c_k22  = sauna.Analysis.compare(sensitivities_2, sensitivities_2, functional_1 = 'Eigenvalue', functional_2 = 'Eigenvalue', type = 'c_k', covariances = covariances)

```
