Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Sivilan
6 / 6 / 7
Регистрация: 17.03.2013
Сообщений: 66
1

Квадратичная интерполяция

27.05.2015, 21:55. Просмотров 1719. Ответов 1
Метки нет (Все метки)

Здравствуйте,не понимаю,что не так,все сделано по алгоритму ,алгоритм и пример находятся во вложениях
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <cmath>
#include <math.h>
using namespace std;
double f(double x)
{
    double ret = 2* pow(x, 2) + 16/x;
    return ret;
}
int main()
{
    double  help, p,p1, x0, x1, x2, h, e1, e2,  index, tmp, minintpo,  help1;
    double mas[2];
    bool sled = true;
    bool proverka = true;
    double x[2];
    cout << "Enter x1 : "; cin >> x[0];
    cout << "Enter h : "; cin >> h;
    cout << "Enter e1 : "; cin >> e1;
    cout << "Enter e2: "; cin >> e2;
    do
    {
        if (sled == true)
        {
            if (proverka == true)
            {
                x[1] = x[0] + h;
            }
            else
            {
                x[1] = minintpo;
 
            }
            x0 = x[0];
            x1 = x[1];
            if (f(x0) > f(x1))
            {
                cout << "f(x0)>f(x1" << endl;
                x[2] = x0 + 2 * h;
            }
            if (f(x0) <= f(x1))
            {
                x[2] = x0 - h;
            }
            x2 = x[2];
        }
            mas[0] = f(x0);
            mas[1] = f(x1);
            mas[2] = f(x2);
            tmp = mas[0];
            for (int i = 0; i<2; i++)
            {
                if (tmp>mas[i+1])
                {
                    tmp = mas[i + 1];
                    index = x[i + 1];
                    
                }
            }
        cout << "xmin" << index << endl;
        cout << "Fmin" << tmp << endl;
        minintpo = 0.5*(((x1*x1) - (x2*x2))*mas[0] + ((x2*x2) - (x0*x0))*mas[1] + ((x0*x0) - (x1*x1))*mas[2]) / ((x1 - x2)*mas[0] + (x2 - x0)*mas[1] + (x0 - x1)*mas[2]);
        help = fabs((tmp - f(minintpo)) / (f(minintpo)));
        help1 = fabs((index - minintpo) / (minintpo));
        cout << "" << help << endl;
        cout << "" << help1 << endl;
        if (minintpo >= x0 && minintpo <= x2)
        {
            sled = false;
            cout << "yes" << endl;
            if (index > minintpo)
            {
 
                x[1] = minintpo;
            }
            else
            {
                x[1] = index;
            }
            p = modf(x[1], &p1);
            x[0] = x[1] - p;
            x[2] = x[1] + (1 - p);
            cout << "x0" << x[0] << endl;
            cout << "x2" << x[2] << endl;
 
        }
            if (minintpo <= x0 && minintpo >= x2)
            {
                sled = true;
                proverka = false;
                x[1] = minintpo;
 
            }
        } while ((help > e1) && (help1 > e2));
        cout << "tmp" << tmp << endl;
        cout << "index" << index << endl;
        cout << "minintpo" << minintpo << endl;
        cout << "f(interpolinom)" << f(minintpo);
    }
Квадратичная интерполяция

Квадратичная интерполяция

Квадратичная интерполяция
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 21:55
Ответы с готовыми решениями:

Квадратичная интерполяция
привет. можешь пожалуйста помочь из созданием программы для вычисления ...

Аппроксимация. Квадратичная интерполяция
Нужен пример реализации квадратичной интерполяции на интервале с 11 точками....

Интерполяция заданной функции второй формулой Ньютона (обратная интерполяция)
Программа накапливает ошибку, да и первые значения совсем уже &quot;приближённые&quot;....

квадратичная выборка
Здравствуйте, подкиньте, пожалуйста, ручной просчет квадратичной выборки. У...

Квадратичная матрица
Помогите написать, а то никак не могу, на с++ Заданная квадратная матрица...

1
S_el
2151 / 1679 / 353
Регистрация: 15.12.2013
Сообщений: 6,644
27.05.2015, 22:00 2
Sivilan, используйте отладчик,чтобы определить на каком шаге расхождение.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 22:00

Квадратичная выборка
Здравствуйте. Большая просьба написать алгоритм квадратичной выборки. Если...

Целочисленная квадратичная матрица
Дана целочисленная квадратичная матрица. Определить: 1) Количество...

Квадратичная фунция для хэш-таблицы
Добрый день! Подскажите, что тут c1, c2, h'(key)? Задание прикрепил картинкой.....


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

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

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