0 / 0 / 0
Регистрация: 11.06.2018
Сообщений: 10
|
|
1 | |
вот программа интерполяционной формулы бесселя, она работает24.12.2019, 16:16. Показов 931. Ответов 1
Метки нет (Все метки)
нужно написать по этой проге вывод, 3-4 предложения, точнее ответы на такие вопросы: на основе численных результатов сделать выводы о
1. скорости сходимости при различных “n” (это порядок) 2. влияние расчетное сетки на решение 3. о возможности интерполяции «сложных функций» вот код: // Программа для реализации формулы Бесселя #include<iostream> #include <cstdlib> #include <iomanip> using namespace std; // вычисление u, упомянутый в формуле float ucal(float u, int n) { if (n == 0) return 1; float temp = u; for (int i = 1; i <= n / 2; i++) temp = temp * (u - i); for (int i = 1; i < n / 2; i++) temp = temp * (u + i); return temp; } // расчет факториала заданного числа n int fact(int n) { int f = 1; for (int i = 2; i <= n; i++) f *= i; return f; } int main() { // количество заданных значений int const n = 6; float x[n]; const int PI = 3.14; int a, b; cout << "vvedite a:" << endl; cin >> a; cout << "vvedite b:" << endl; cin >> b; cout << "\n" << endl; const int m = 6; double yy[m]; cout << "\n znacheniya yy=" << endl; for (int i = 0; i < m; i++) { //int x; x[i] = (b - a)*i*PI; yy[i] = x[i] * sin(x[i]); cout << yy[i] << endl; } float y[m][1]; for (int i = 0; i < m; i++) { y[i][1] = 0; y[i][0] = yy[i]; } // Расчет центральной разностной таблицы for (int i = 1; i < n; i++) for (int j = 0; j < n - i; j++) y[j][i] = y[j + 1][i - 1] - y[j][i - 1]; // Отображение центральной разностной таблицы cout << "\n" << endl; cout << "\n Centralnaya raznostnaya tablica:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n - i; j++) cout << setw(4) << y[i][j] << "\t"; cout << endl; } // значение для интерполяции при float value = x[3]; // Инициализация и сумма float sum = (y[2][0] + y[3][0]) / 2; // k является источником, то есть f(0) int k; if (n % 2) // происхождение для нечетного k = n / 2; else k = n / 2 - 1; float u = (value - x[k]) / (x[1] - x[0]); // Решение по формуле Бесселя for (int i = 1; i < n; i++) { if (i % 2) sum = sum + ((u - 0.5) * ucal(u, i - 1) * y[k][i]) / fact(i); else sum = sum + (ucal(u, i) * (y[k][i] + y[--k][i]) / (fact(i) * 2)); } cout << "Value at " << value << " is " << sum << endl; system("pause"); return 0; }
0
|
24.12.2019, 16:16 | |
Ответы с готовыми решениями:
1
Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает Интерполирование с использованием интерполяционной формулы Лагранджа формулы Бесселя не пойму в чем дело, программа должна работать, но она черт побери не работает :( (программа по работе с реестром) |
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
|
|
24.12.2019, 16:19 | 2 |
Пожалуйста, не забывайте выделять код
0
|
24.12.2019, 16:19 | |
24.12.2019, 16:19 | |
Помогаю со студенческими работами здесь
2
Не работает программа (Рекуррентные формулы) Программа работает не всегда, в частных случаях она вылетает Программа проверки числа на простоту. Не могу понять как она работает. Программа для вывода максимального значения (но она не работает с отрицательными числами) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |