математика — Как решить уравнение N-й степени в PHP?

Как решить уравнения n-й степени в PHP

Пример:

1 / (1 + I) + 1 / (1 + I)2+…1 / (1 + I)N= к

В то время как k является константой, я хотел бы найти значение i.

Как я могу добиться этого в PHP?

-1

Решение

Прежде всего, ваше выражение слева представляет собой геометрическую сумму, поэтому вы можете переписать ее как (используя x=1+i)

1/x*(1+...+1/x^(n-1)) = 1/x * (1-1/x^n)/(1-1/x) = (1-x^(-n))/(x-1)

и, следовательно, уравнение может быть переписано как

(1 - pow( 1+i, -n))/i = k

Теперь из исходного выражения известно, что левая часть в виде суммы выпуклых монотонно убывающих функций одинаково одинакова, поэтому любой из вариантов деления пополам, Regula Falsi или секущего метода будет работать достаточно хорошо.

использование

(1+i)^(-n)=1 - n*i + (n*(n+1))/2*i^2 +...

чтобы получить приближенное уравнение и первое приближение

1-(n+1)/2*i = k/n  <=> i = (1-k/n)*2/(n+1)

так что вы можете начать метод брекетинга с интервалом от 0 удвоить это i,

2

Другие решения

Попробуйте что-то вроде этого ….

$n = 5;
$i = 2;
$k = null;

for ($x = 1; $x <= $n; $x++) {
$k += 1 / pow((1 + $i), $x);
}

echo $k; //Answer --> 0.49794238683128
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector