21.05.2014, 15:11 | #1 (permalink) |
Новичок
Регистрация: 30.09.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста, доделать на Си
Аппроксимация функций, заданных аналитически, многочленами Чебышева. В головной программе необходимо: 1. описать прототип функции: void approks_Chebyshev(int n, float x1, float x2, float q[n+1], float cheb[n+1], float r[n+1][n+1], float *eps); 2. ввести значение переменной n – степень аппроксимирующего полинома, 3. описать массивы: float q[n+1]; // вектор коэффициентов // аппроксимирующего полинома // по возрастающим степеням float cheb[n+1]; // массив коэффициентов // при аппроксимирующих многочленах Чебышева float r[n+1][n+1]; // массив коэффициентов // многочленов Чебышева 4. ввести значения переменных x1 и x2 – левая и правая границы аппроксимации, 5. создать функцию float function(float x) , в которой описать аппроксимируемую функцию как f=f(x), например: float function(float x) // // Описание аппроксимируемой функции в виде f=f(x) // { float f; f=log(x); return f; } 6. обратиться к программе вычислений коэффициентов аппроксимирующего полинома: approks_Chebyshev(n, x1, x2, q, cheb, r, &eps); 7. вывести на экран терминала (в текстовый файл) векторы коэффициентов q[n+1] и cheb[n+1], массив r[n+1][n+1] и абсолютную погрешность аппроксимации eps в средине интервала. Пример: аппроксимировать кубическим полиномом функцию: на интервале от x1=1,0 до x2=2,0. Головная программа: #include <stdio.h> #include <math.h> #include <conio.h> void approks_Chebyshev(int n, float x1, float x2, float q[n+1], float cheb[n+1], float r[n+1][n+1], float *eps); int main(int argc, char **argv) { int n; // степень аппроксимирующего полинома float x1, x2; // границы интервала аппроксимации float eps; // абсолютная погрешность аппроксимации // в середине заданного интервала (x1, x2) int i, j; // рабочие переменные printf("\n stepen approks. polinoma n = "); scanf("%d", &n); float q[n+1]; // массив коэффициентов // аппроксимирующего полинома // по возрастанию степеней float cheb[n+1]; // массив коэффициентов при // аппроксимирующих многочленах Чебышева float r[n+1][n+1]; // массив коэффициентов // многочленов Чебышева printf("\n levaja granica approks. x1 = "); scanf("%f", &x1); printf("\n pravaja granica approks. x2 = "); scanf("%f", &x2); approks_Chebyshev(n, x1, x2, q, cheb, r, &eps); printf("\nKoefficienty approks. polinoma:\n"); for (i=0; i<n+1; i++) printf("%12.6f", q[i]); printf("\n"); printf("\nKoefficienty chebyshev. approksim.:\n"); for (i=0; i<n+1; i++) printf("%12.6f", cheb[i]); printf("\n"); printf("\nKoefficienty mnogochlenov chebysheva:\n"); for (i=0; i<n+1; i++) { for (j=0; j<n+1; j++) printf("%10.2f", r[i][j]); printf("\n"); } printf("\n"); printf("\nAbsoljutnaja pogreshn. approksimacii: %e\n", eps); return 0; } Описание аппроксимируемой функции: float function(float x) // // Описание аппроксимируемой функции в виде f=f(x) // { float f; f=log(x); return f; } |
21.05.2014, 15:11 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Скорее всего в похожих обсуждениях вы найдете множество полезных советов Помогите доделать программу на C++, пожалуйста! Помогите доделать программу Множества. Помогите доделать программу Помогите доделать задачу в С++ Помогите доделать код Помогите доделать |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|