Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
7 / 7 / 2
Регистрация: 16.10.2010
Сообщений: 74
1

Вычисление значений многочлена по схеме Горнера методом сдваивания

20.01.2012, 18:55. Просмотров 3571. Ответов 1
Метки нет (Все метки)

Ребят как задается реккурентное соотношение для функции?,
алгоритм вычисления по схеме горнера у меня есть, но нужно привести мою ф-ию сначала к реккурентному соотношеню потом к матрице и потом вбить из нее переменные в алгоритм.
0
Изображения
 
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 18:55
Ответы с готовыми решениями:

Вычисление значений степенных полиномов по схеме Горнера
Помогите сделать ,не могу понять.Сделать восьмой вариант.Очень благодарен любой помощи.Если...

Провести вычисление многочлена по схеме Горнера
Провести вычисление многочлена по схеме Горнера f(x)=( ...(((x+A )x+A )x+A )... )x+An Помогите...

Вычислить значение многочлена по схеме Горнера
Добрый день! помогите пожалуйста 1) Многочлен степени n задан массивом своих коэффициентов....

Вычислить по схеме Горнера значение многочлена
Многочлен степени n задан массивом своих коэффициентов.Вычислить значение многочлена по схеме...

1
7 / 7 / 2
Регистрация: 16.10.2010
Сообщений: 74
21.01.2012, 05:57  [ТС] 2
Лучший ответ Сообщение было отмечено whizzkey как решение

Решение

Окей видимо пока никто не понял что мне нужно, обьясню вот алгоритм:
C++
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <windows.h>
#include <stdlib.h>     // включение генератора случайных чисел
#include <time.h>               // получение первого случайного числа
#include <iostream.h>           // ввод-вывод
#include <conio.h>              // для включения ожидания ввода клавиши
#include <dos.h>                // для включения sleep()
#include <math.h>
#define N 20                    // степень многочлена
double x;                       // значение переменной
unsigned long long factorial(unsigned long long n)   // для вычисления факториала
{
    if (n == 0)
        return 1;
    else
        return n * factorial (n - 1);
}
 
struct arg                      // структура для передачи параметров
{
int l, r;                       // нижний и верхний номера 2х2=матрицы
double p, q;                    // коэффициенты первой строки матрицы
};
 
double a[N+1];                      // коэффициенты многочлена
DWORD WINAPI prod(void* s)      // функция потока
{
int i, l=((arg *)s) -> l, r=((arg *)s) -> r;
Sleep(random(0.2));             // случайная задержка
if (l == r)
{
((arg *)s) -> p = x*x;      // установка
((arg *)s) ->q = a[r];      // коэффициентов
}
else
{
arg *r1 = new arg, *r2 = new arg;
HANDLE H[2];                                    // дескрипторы потоков
r1 -> l = l; r1 -> r = (l + r + 1)/2 - 1;       // установка
r2 -> l = (l + r + 1)/2; r2 -> r = r;          // границ
H[0] = CreateThread(0,0,prod, (void *)r1, 0,0); // порождение
H[1] = CreateThread(0,0,prod, (void *)r2,0,0);  // потоков
for (i = 0; i < 2; i++)                             // ожидание выполнения
WaitForSingleObject(H[i],INFINITE);             // потоков
((arg *)s) -> p = (r1 -> p)*(r2 -> p);
((arg *)s) -> q = (r1 -> p)*(r2 -> q)+(r1 -> q);
delete r1; delete r2;
}
return 1;
}
 
void main()
{
int i,g,j;
double w=0, z, v,b;
for (i=0; i<=N; i++)
{
 
a[i] = 1/factorial(2*i+1) ;     // установка случайных коэффициентов
}
arg t;                          // объявление структуры параметров
for (x = 0; x < 10; x += 1)     // перебор значений х
{
t.l = 0; t.r = N;           // границы массива матриц
prod(&t);                   // вызов подпрограммы
cout << "\n Polynom value = " << t.q*x ;    // вывод
z = 0;
 
for (i = 0; i <= N; i++)                        // цикл для проверки
{
v = 1;
for (j = 0; j <i; j++) v = v*pow(x,2);
    // вычисление xi
z += x*v*a[i];                      // вычисление значения многочлена
}
cout << "== "<< z;                  // вывод значения для проверки
getch();                                // ожидание нажатия клавиши
}
}
Который расчитывает схему горнера для Название: горнеры.JPG
Просмотров: 1001

Размер: 2.9 Кб

Что мне нужно поменять в нем чтобы рассчитывал мой многочлен?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2012, 05:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти значение многочлена по схеме Горнера
Найти значение многочлена y=11*x^10+10*x^9+...+2*x+1 по схеме Горнера.На языке Си. Добавлено...

Написание рекурсивной функции вычисления многочлена по схеме Горнера
не понимаю что требуется, по этому задание прикрепляю чтобы не ошибиться

Вычислить по схеме Горнера значение многочлена с комплексными коэффициентами
Даны: натуральное число N, массивы действительных чисел A(N), B(N), действительные числа X, Y....

Составить программу вычисления значения многочлена по схеме Горнера
ребят помогите написать это в FreePascale y=x^10+2x^9+3x^8+...+10x+11;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.