Форум программистов, компьютерный форум, киберфорум
Наши страницы

Кусочно-линейная аппроксимация - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать метод в fsScript http://www.cyberforum.ru/cpp-beginners/thread614812.html
Напишите пожалуйста рабочие примеры на С++ создания метода с использование fsScript.
C++ Перенос кода Подскажите пожалуйста в чём проблема? имею код: func.cpp #ifndef LAB4_H #define LAB4_H #include "stdafx.h" int borderLeft; http://www.cyberforum.ru/cpp-beginners/thread614782.html
Массив C++
Помогите пожалуйста, объяснить код программы :int **arr = new int *; for(int i = 0; i < size; i++) arr = new int ;Вот этот.
Дан вещественный массив A[4][4] и значение С, величина которого вводится пользователем. C++
Дан вещественный массив A и значение С, величина которого вводится пользователем. Массив преобразовать по правилу: все отрицательные данные заменить на значение 0.0, а все положительные - на...
C++ Сумма элементов произвольного одномерного массива http://www.cyberforum.ru/cpp-beginners/thread614718.html
Помогите составить программу, которая находит сумму элементов произвольного одномерного массива
C++ Неправильная работа программы была программа, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. вот она) #include "iostream.h" #include "fstream.h" #include "conio.h" int... подробнее

Показать сообщение отдельно
megalexa
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 34

Кусочно-линейная аппроксимация - C++

27.06.2012, 10:02. Просмотров 3535. Ответов 4
Метки (Все метки)

Здравствуйте.

Задача: есть два массива X и Y (с одинаковым количеством элементов - по 19). Необходимо установить зависимость между ними Y(X) так, чтобы можно было находить неизвестное приблизительное число Y при значениях X, не из массива.

Решил использоваться кусочно-линейную аппроксимацию.

Алгоритм (найти отрезок x1 < x < x2, вычислить вес для y1: w1 = (x2 - x) / (x2 - x1), вес для точки y2: w2 = (x - x1) / (x2 - x1), сложить: y(x) = y1*w1 + y2*w2).

Код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public: double approximat(int X[19], int Y[19], int x)
{    
// вычисление ближайшего большего и его индекса 
                int max = X[0];
                int indexMax = 0;  // индекс
                 for (int i = 0; i<19; i++)
                    {
                        if (X[i] <= max && x <= X[i]) {max = X[i]; i = indexMax;}
                    }
 
// вычисление ближайшего меньшего и его индекса 
 
                int min = X[19];
                int indexMin = 0;
                 for (int i = 0; i<19; i++)
                    {
                        if (X[i] >= min && x >= X[i]) {min = X[i]; i = indexMin;};
                    }
 
// вычисление нужного Y
double Y = ((max-x) / (max-min))*Y[indexMin] +((x-min)/(max-min))*Y[indexMax];
return Y;
}
P.S, намеренно пишу в этом разделе не на родном C++, а в CLI/C++ (Windows Forms).

компиляция проходит успешно, но окно forms зависает при вычислении.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.