Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/27: Рейтинг темы: голосов - 27, средняя оценка - 4.85
7 / 7 / 0
Регистрация: 08.11.2010
Сообщений: 38

Вычислить значение функции используя разложение в ряд

17.11.2010, 01:00. Показов 5325. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если были похожие темы, то указывайте ссылки, пожалуйста.
1. e=1+1/1!+1/2!+...+1/к!+... - сделано проверить.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
domains
      N,F,S=real
predicates
      result
      fun(N,F,S)
clauses
      fun(0,1,1).
      fun(N,F,S):-N>0,N1=N-1,
      fun(N1,F1,S1),F=F1*1/N,S=S1+F.
      result:-write("nomer clena N="),readreal(N),
              fun(N,F,S),write("clen=",F),nl,
              write("summa=",S),nl.     
goal
       result.
Выводит n-ный член ряда. Вроде все нормально работает. Проверьте, пожалуйста.
2. cos(X)=1-х^2/2!+х^4/4!- ...+(-1)^m*х^(2*m)/(2*m)! + ... - ладно не нужно.
3. sin(x) = x – x^3/3! + х^5/5! - ... + (-1)^(m-l)*x^(2*m-l)/(2*m-l)! + ...
По синусу помогите переделать из синус Х, пожалуйста:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
predicates
        msin(integer,real,real)
        msin(integer,integer,real,real,real,real)
        result
clauses
        msin(N,X,Res):-X1=-X,msin(1,N,X,X1,X1,Res).
        msin(C,N,X,XI,S,Res):-C<=N, !,
        XJ=-XI*X*X/(2*C*(2*C+1)),S1=S+XJ,C1=C+1,
        msin(C1,N,X,XJ,S1,Res).
        msin(_,_,_,_,Res,Res).
        result:-write("X="),readreal(X),
                write("N="),readint(N),
                msin(N,X,Res),write("sin X="),
                write(Res).
goal
        result.
Добавлено через 2 часа 49 минут
Господь, прости мне мою тупость. Все отличие в первом члене - X1=X.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
predicates
        msin(integer,real,real)
        msin(integer,integer,real,real,real,real)
        result
clauses
        msin(N,X,Res):-X1=X,msin(1,N,X,X1,X1,Res).
        msin(C,N,X,XI,S,Res):-C<=N, !,
        XJ=-XI*X*X/(2*C*(2*C+1)),S1=S+XJ,C1=C+1,
        msin(C1,N,X,XJ,S1,Res).
        msin(_,_,_,_,Res,Res).
        result:-write("X="),readreal(X),
               write("do n-nogo clena ryada N="),readint(N),
               msin(N,X,Res),write("sin X="),
               write(Res),nl,Y=sin(X),write(Y).
goal
       result.
В конце можно сравнивать со встроенной функцией.
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2010, 01:00
Ответы с готовыми решениями:

Вычислить значение функции, используя разложение в ряд
нужно вычислить значение функции, используя разложение в ряд рекурсивным и итеративным методом. в...

Вычислить exp(x) , используя разложение в ряд Тейлора
С точностью до задаваемого слагаемого, т. е. задать функцию expT с аргументами x и n, где n — число...

Вычислить значение выражение непосредственно и через разложение в ряд
Ввиду &quot;нестандартности&quot; синтаксиса &quot;языка программирования&quot; Lisp у меня возникло затруднение с...

2
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
17.11.2010, 01:01
прощаю тебя, сын Мой
1
l42857
07.12.2010, 17:17
Здравствуйте,alesandre.
Смотрю на Ваш пример с синусом - вроде все поняла, кроме строчки msin(_,_,_,_,Res,Res).
У меня задачка похожая, но условие другое - считать косинус, пока слагаемые > 0.0001.
Вот что я насочиняла:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
predicates
nondeterm cosin(integer,real)
nondeterm func(integer,integer,integer,integer,integer,integer,real,real)
clauses
 
сosin(X,C):-
   M=-1,
   M1=M*M,
   N=2,
   FACT=2,
   X1=X*X,
   RES=1,   
   func(X,M,M1,N,FACT,X1,RES,C).
 
func(X,M,M1,N,FACT,X1,RES,C):-
    RES1=RES-M1*X1/FACT,
    X2=X1*X*X,
    M2=M1*M,
    N1=N+2,
    FACT1=FACT*(N1-1)*N1,
    X2/FACT1>0.0001,
    func(X,M,M2,N1,FACT1,X2,RES1,C).
 
func(X,M,M2,N1,FACT1,X2,RES1,C):-
    X2/Fact1 < 0.0001,
    C=Res1.
 
    
goal
cosin(0,C).

С 0 получается, с другим аргументом - нет (No Slution). Значит, как я поняла, первое правило выполняется, а дальше (func) - нет. Не знаю что делать(
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2010, 17:17
Помогаю со студенческими работами здесь

Предикат, вычисляющий функцию exp(x), используя разложение в ряд (Visual prolog 5.2)
Здраствуйте форумчане. в институте начали проходить язык турбопролог. Дали задания, но вот над...

Используя рекурсию вычислить значение синуса разложением в ряд
В общем задача на рекурсию,не знаю как сделать,помогите плиз. sin(x) = x – x^3/3! + x^5/5! - … +...

Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x)
Добрый день) помогите исправить ошибке в программе в арифмитической части. А задание звучит так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru