JS метод Math.expm1()


Загальний опис

Math.expm1() є частиною математичного об'єкта в JavaScript. Цей метод дозволяє обчислити значення e^x (де e є основою натурального логарифму) та відняти 1. Умовно кажучи, він виконує операцію e^x - 1.

Застосування методу Math.expm1() може здаватися неінтуїтивним на перший погляд, але насправді, ця функція має важливе застосування в обчисленнях, де потрібна висока точність для дуже малих значень x. Це тому, що для дуже малих x, e^x буде дуже близько до 1, і виконання обчислення e^x - 1 може призвести до втрати точності через обмеження відносно точності чисел з рухомою комою.

Якщо вас коли-небудь цікавило, як обчислити зростання (або спад) величини в експоненціальних умовах, Math.expm1() може бути вашим вибором. Це особливо корисно для обчислень, що пов'язані з фінансами, статистикою, інженерними задачами та іншими галузями, де експоненціальний ріст або спад є ключовою темою.

Однією з найбільших переваг Math.expm1() є його точність при обчисленні з дуже малими значеннями. Це робить його ідеальним для ситуацій, де різниця між результатами може бути мізерною, але критичною для обчислень.

Розглянемо наступний код:

let growthRate = 0.0001;
let growth = Math.expm1(growthRate);
console.log(growth);

В цьому коді ми розглядаємо невеликий темп зростання (0.0001). За допомогою Math.expm1(), ми можемо визначити, наскільки великим буде цей зріст в експоненціальних умовах.

На відміну від Math.exp(), який просто повертає e^x, Math.expm1() обчислює e^x - 1. Таким чином, він враховує від'ємний зсув, що робить його корисним у специфічних обчислювальних ситуаціях.

автор: Bond

Порада

Для початківців може здаватися, що ці два методи роблять одне й те ж, але насправді вони відмінні. Math.expm1(x) робить те ж саме, що і Math.exp(x) - 1. Використовуйте Math.expm1(), коли потрібно отримати результат експоненції числа з відніманням одиниці.

автор: Bond
Порада

Якщо у вашому проекті часто проводяться обчислення, які вимагають віднімання одиниці від експоненціального результату, розгляньте можливість використання Math.expm1() для збільшення продуктивності та точності.

автор: Bond
Порада

Хоча Math.expm1() є стандартною частиною JavaScript, не всі старі браузери можуть його підтримувати. Перед впровадженням методу в продакшн, переконайтеся, що він підтримується у ваших цільових браузерах.

автор: Bond
Порада

Для дуже малих значень x, Math.expm1() може надати більш точний результат, ніж використання Math.exp(x) - 1. Це особливо корисно при обчисленні дробових експоненцій. Приклад:

let smallValue = 0.000001;
console.log(Math.exp(smallValue) - 1);  // може бути менш точним
console.log(Math.expm1(smallValue));    // більш точний результат
автор: Bond

Синтаксис

Math.expm1(x)

Параметри

x

Це число, для якого потрібно обчислити значення e^x - 1, де e є основою натурального логарифму. Цей параметр визначає степінь, до якої буде піднесено число e.

автор: Bond

Повернення

number

Повертає число, яке представляє значення e^x - 1, де e є основою натурального логарифму.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
38 25 8 25 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
38 38 25 8
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.12.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми обчислюємо прибуток від інвестицій, які мають експоненціальний темп зростання. Початкова сума інвестицій (initialInvestment) збільшується на величину, яку обчислюємо за допомогою методу Math.expm1() та темпу зростання (annualGrowthRate). Таким чином, ми отримуємо загальну суму інвестицій після року.

// Початкова сума інвестицій
let initialInvestment = 10000;

// Щорічний темп зростання інвестицій у відсотках
let annualGrowthRate = 0.07;

// Обчислення прибутку від інвестицій після року
let profit = Math.expm1(annualGrowthRate) * initialInvestment;
let totalAfterOneYear = initialInvestment + profit;

console.log(`Сума інвестицій після року: ${totalAfterOneYear}`);
автор: Bond

Цей приклад дозволяє користувачеві ввести значення, для якого вони хочуть обчислити результат Math.expm1(), і побачити вивід цього результату на сторінці після натискання кнопки "Обчислити".

автор: Bond

У цьому прикладі ми розглядаємо популяцію бактерій, яка зростає експоненціально щогодини. Ми використовуємо метод Math.expm1() для визначення, наскільки бактерій збільшиться популяція після години, враховуючи заданий темп зростання (growthRate). Результат додаємо до початкової кількості бактерій.

// Початкова кількість бактерій
let initialPopulation = 1000;

// Щогодинний темп зростання популяції бактерій у відсотках
let growthRate = 0.05;

// Обчислення кількості бактерій після години
let growth = Math.expm1(growthRate) * initialPopulation;
let populationAfterOneHour = initialPopulation + growth;

console.log(`Популяція бактерій після години: ${populationAfterOneHour}`);
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід