IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> построение графика функции
сообщение
Сообщение #21


Гость






Другими словами:
F = 10 *
((-1)0 * 19! * (4*x2)10) / (0! * 20!) +
((-1)1 * 18! * (4*x2)9) / (1! * 18!) +
((-1)2 * 17! * (4*x2)8) / (2! * 16!) +
((-1)3 * 16! * (4*x2)7) / (3! * 14!) +
((-1)4 * 15! * (4*x2)6) / (4! * 12!) +
((-1)5 * 14! * (4*x2)5) / (5! * 10!) +
((-1)6 * 13! * (4*x2)4) / (6! * 8!) +
((-1)7 * 12! * (4*x2)3) / (7! * 6!) +
((-1)8 * 11! * (4*x2)2) / (8! * 4!) +
((-1)9 * 10! * (4*x2)1) / (9! * 2!) +
((-1)10 * 9! * (4*x2)0) / (10! * 0!)
?

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

function f(x: real): real;
var
s, item: real;
p, k: integer;
begin
item := 1/10; s := item;
for k := 9 downto 0 do begin

if k = 9 then p := 1 else p := k + 1;
item := - item * ((19 - k) * p * 4 * sqr(x)) /
(pred(2 * (10 - k)) * (2 * (10 - k)));
s := s + item;
end;
f := 10 * s;
end;



Цитата
которая при х=1 равна 1'200'000 с хвостиком
Это ты преувеличила, при X = 1 значение функции равно 1, но вот растет оно очень быстро - уже F(1.1) становится равным 357.15, а уж при Х = 2 вообще 13 737 919 114.6, то есть больше 13 миллиардов...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


не преувеличила либо ты не правильно посчитал либо не правильно задал у=1 при х=0, а при х=1 у=8654053

кстати у тебя почему то у тебя при х=0 у=8654053?

ты мне лучше скажи как мне функцию с процедурами правильно записать чтобы не переполнять?
у меня просто этих функций мама не горюй и если я у каждой буду члены вычислять меня в дурку заберутsmile.gif

Сообщение отредактировано: зайка -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Цитата
либо ты не правильно посчитал либо не правильно задал у=1 при х=0, а при х=1 у=8654053

А с чего ты вообще решила, что твое значение верно? Пересчитывай свое значение F(1)... Вот тебе второй вариант решения (практически дословно по формуле, ошибиться вообще негде):

function f(x: real): real;

function pow(a: real; n: integer): real;
var i: integer; p: real;
begin
p := 1;
for i := 1 to n do p := p * a;
pow := p;
end;

var
s, power: real;
i, k: integer;
begin
s := pow(4 * sqr(x), 10) / 20;
for k := 1 to 10 do begin
power := pow(4 * sqr(x), 10 - k);
if odd(k) then power := - power;
for i := 1 to pred(k) do begin
power := power * (20 - k - i) / (i + 1);
end;
s := s + power;
end;
f := 10 * s;
end;

Чему будет равно значение F(0)? Единице... А F(1)? Упс, тоже единица... Так что учи матчасть dry.gif

Добавлено через 3 мин.
Цитата
кстати у тебя почему то у тебя при х=0 у=8654053?
Тебе по-моему уже хватит заниматься программированием:

Вот что мне выдается при
  x := 0;
writeln(f(x) :10 :5); { <--- Старая функция F }


Цитата(Console)
Running "g:\programs\pascal\__test.exe"
1.00000
. Где ты видишь то ужасное значение, которое написано выше? Я его не наблюдаю...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


ну ты понимаешь что здесь где-то ошибка ypriamii.gif
, т.к.
1. я в ручную задавала эту функцию(без процедур степеней и факториалов) и значения были совершенно другие;
2. я некот значения вручную просчитывала crazy.gif
3. у этой ф-и 4 симметричных корня +-0,446(приблизит) и +-1.68(тоже приблизит) blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: татьяна

Репутация: -  0  +


немного не так надо ещё 20-2k+i

Сообщение отредактировано: зайка -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 8:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name