![]() |
|
|
#1
|
||||
|
||||
![]() Код:
function Xi(n: integer): extended; begin Result := (m - n + 1) * power(x, n) / fact(n); end; |
#2
|
||||
|
||||
![]() Так при положительном m >=n и не будет никогда 0. А вообще дайте конкретные значения всех переменных и что ожидается в ответе, тогда и будем разбираться
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
![]() Должен же быть 0 всегда при х=0. Поэтому все выражение должно обращаться в него же, а у меня, например, при m = 4, n = 0, x = 0 выдает ответ 5, т.е. пауэр возвращает 1..
Вот полный код: Код:
program Project1; {$APPTYPE CONSOLE} uses SysUtils, Math; const eps = 0.001; var x: extended; m: integer; function Virajenie: extended; begin result := power(1 + x, m); end; function Fact(n: integer): integer; begin if n > 1 then Fact := n * Fact(n - 1) else Fact := 1; end; function Xi(n: integer): extended; begin Result := (m - n + 1) * power(x, n) / fact(n); end; function Ryad: extended; var n: integer; buf: extended; begin n := 0; Result := 0; repeat buf := Xi(n); writeln('x[',n,'] = ', buf:6:4); Result := Result + buf; inc(n); until abs(xi(n) - xi(n - 1)) < eps; begin write('M = '); readln(m); x := 0; writeln('Virajenie = ', Virajenie:6:4); writeln('Ryad = ', Ryad:6:4); readln; end. Последний раз редактировалось Kpyc, 23.10.2011 в 18:51. |
#4
|
|||
|
|||
![]() и правильно!
любое число в нулевой степени даст 1 Но надо еще помнить что power вычисляет степень через логарифмирование поэтому например power(-4,1.5) даст ошибку. |
#5
|
||||
|
||||
![]() Ок, мне надо для x:[-0.6;0.5] доказать тождество:
(1+x)^m = 1 + mx + m (m - 1) x^2 / 2! + ... + m (m-1) ... (m - n + 1) x^n / n! + .... Выдает уж очень разные числа, в чем может быть причина? Думал проблема в этом, а раз нет, то в чем? UPD тему можно закрывать, проблема была в неверном разложении в ряд. Последний раз редактировалось Kpyc, 24.10.2011 в 16:19. |