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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> построение графика функции
volvo
сообщение 5.07.2008 12:34
Сообщение #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 - 5.07.2008 12:36
 К началу страницы 
+ Ответить 
зайка
сообщение 5.07.2008 15:01
Сообщение #22


Новичок
*

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

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


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

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

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

Сообщение отредактировано: зайка - 5.07.2008 15:28
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.07.2008 16:07
Сообщение #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 - 5.07.2008 16:11
 К началу страницы 
+ Ответить 
зайка
сообщение 5.07.2008 17:11
Сообщение #24


Новичок
*

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

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


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


Новичок
*

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

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


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

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

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

 



- Текстовая версия 8.09.2025 13:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"