0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 41
1

Функция для вычисления значения полинома

14.12.2016, 11:38. Показов 1238. Ответов 5
Метки нет (Все метки)

Здравствуйте! Помогите с задачей, пожалуйста:
Написать функцию для вычисления значения полинома для заданного аргумента по схеме Горнера. Коэффициенты полинома заданы в виде списка или одномерного массива. Предусмотреть проверку корректности данных.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2016, 11:38
Ответы с готовыми решениями:

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

Составить программу для вычисления значения полинома
Составить программу для вычисления значения полинома y= a1x(в степени n)+ a2x(в степени n-1 +....+...

Напишите рекурсивную процедуру для вычисления значения полинома Лежандра
Напишите рекурсивную процедуру для вычисления значения полинома Лежандра порядка n в точке x....

Составить подпрограмму для вычисления значения полинома, коэффициенты которого хранятся в массиве
помогите пожалуста, срочно надо. зарание спасибо!! дана такая задача Составить...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
33097 / 18443 / 3879
Регистрация: 12.02.2012
Сообщений: 31,000
Записей в блоге: 12
14.12.2016, 13:42 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(defun poly-val (coeff arg &optional (acc 0))
  (if (null coeff) acc (poly-val (cdr coeff) arg (+ (car coeff) (* acc arg)))))
  
 
==> POLY-VAL
 
(poly-val '(1 3 1) 0) ;; x^2+3x+1 при x=0
 
==> 1
 
(poly-val '(1 3 1) 2) ;; x^2+3x+1 при x=2
 
==> 11
 
(poly-val '(1 3 3 1) 2) ;; x^3+3x^2+3x+1 при x=2
 
==> 27
Вот только не пойму, что тут проверять на некорректность?
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 41
14.12.2016, 21:58  [ТС] 3
Возможно проверка на является ли заданные данные числами. Типа чтобы не были буквами или, может, отрицательными
0
187 / 154 / 17
Регистрация: 18.12.2015
Сообщений: 179
14.12.2016, 22:59 4
Без проверки:

Lisp
1
2
3
4
5
(defun horner (poly x)
  (reduce
    (lambda (a b)
      (+ (* a x) b))
    poly))
На некорректных данных программа выдаст ошибку. IMHO, это лучший вариант обработки некорректных входных данных.

Но, при желании, можно добавить проверки, и выдавать, для некорректных данных, к примеру, "nil".
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun horner (poly x)
  (when (numberp x)
    (reduce
      (lambda (a b)
        (when (and (numberp a) (numberp b))
          (+ (* a x) b)))
      poly)))
 
? (horner '(1 2 3) 100)
10203
? (horner '(1 s 3) 100)
NIL
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
33097 / 18443 / 3879
Регистрация: 12.02.2012
Сообщений: 31,000
Записей в блоге: 12
15.12.2016, 10:18 5
HomeLisp:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun task (coeff arg)
  (try 
       (poly-val coeff arg)
   except
       (errormessage))) 
 
==> TASK
 
(task '(1 2 3) 7)
 
==> 66
 
(task '(1 a 3) 7)
 
==> "PLUS: Один из аргументов (A) имеет нечисловой тип"
0
0 / 0 / 0
Регистрация: 22.11.2014
Сообщений: 41
15.12.2016, 12:07  [ТС] 6
Пишем на clisp. Правда не как Вы предлагаете, а на начальном уровне, по-детски
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2016, 12:07
Помогаю со студенческими работами здесь

Функция для вычисления значения y
Напишите функцию для вычисления значения y. y= √ l cos^3x l / ln x + a

Функция для вычисления максимального значения из трех элементов
Помогите пожалуйста. Написать функцию для вычисления максимального значения из 3-х элементов.

Рекурсивная функция для вычисления наибольшего значения в одномерном массиве
для вычисления наибольшего значения в одномерном массиве

Написать программу для вычисления точек экстремума полинома третьей степени
Нужно написать программу на С++. Задание: Написать программу для вычисления точек экстремума...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru