Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычислить значение функции. Возведение в степень
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
m3mfis
Вот сижу тут не могу ни как решить одну задачу. Сказали сделать с помошью рекуррентных соотнощений, но я что-то запутался кароч получается билиберда привожу само условие задачи:
Нажмите для просмотра прикрепленного файла

y=(x^4+x^7/2!+x^10/3!+x^13/4!)*5*a
Altair
Возведение в степень
Гость
Цитата(Altair @ 18.12.2005 11:35) *


а вот так нельзя, нужно использовать РЕККУРЕНТНЫЕ СООТНОШЕНИЯ а я в них вьехать не могу. =(
volvo
Ну, тогда начинай с того, с чего нужно начинать для решения рекуррентной задачи - построения формулы общего члена последовательности Xi:
Xi = X^(3*i + 1) / (i!)

Теперь зайди сюда: Разложение функции в ряд, и посмотри, как по заданному общему члену вычисляется сумма ряда... Все, что останется - домножить сумму на 5*а
yes2.gif
m3mfis
ну я вот тут на мучал немного :
Код
var
y,x,z:real;
i,k:longint;
function fackt(x:double): double;
begin
fackt:=x*(x-1)*(x-2);
{fackt:=sqrt(2*pi*x)*(exp(x*ln(x/exp(1))));}
end;
begin
i:=1;
k:=2;
read(x);
{inc(i,3);
inc(k);}
z:=exp((3*i+1)*ln(x))/fackt(k);
writeln(z:2:0);
end.


А дальше надо просто зациклить с инкриментом для k и i?
volvo
Вообще-то эта задача довольно просто решается без функций (тебе же было нужно использование рекуррентных соотношений, или нет?):
var
X, a, next, s: real;
i: integer;

begin
write('X = '); readln(X);
a := 2; { <--- Ну, или сколько тебе нужно }

next := x; s := 0;
for i := 1 to 4 do begin
next := next * (sqr(X) * X) / i;
s := s + next;
end;

writeln('Y = ', s * 5 * a);
end.
Гость
спб большое за решение, только я вот что-то не могу взять в толк, как там считается факториал?
volvo
Цитата
next := next * (sqr(X) * X) / i;
Каждый раз делим на очередное значение i, но в предыдущем шаге делили на (i-1), это все равно, что сначала посчитать факториал, и потом разделить на него...

Вот тебе иллюстрация:
i = 1: next_1 = ... / 1
i = 2: next_2 = next_1 * ... / 2 = next_1 * ... / 1 / 2 = next_1 * ... / (1*2) = next_1 * ... / (2!)

и т.д.
Гость
а какие тут реккурентные формуды получились?
volvo
А ты пост №4 внимательно читал? Вот иди и перечитай... Второй раз я формулу приводить не буду...
Гость
да я прочёл у меня получилось так:

Xi = X^(3*i + 1) / (i!) нач знач 1

s=s+Xi 0
y=y*j 1


Правильно или первое это не рек. формула.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.