Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 21.05.2014, 15:11   #1 (permalink)
Natashka
Новичок
 
Регистрация: 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;
}
Natashka вне форума   Ответить с цитированием

Старый 21.05.2014, 15:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Скорее всего в похожих обсуждениях вы найдете множество полезных советов

Помогите доделать программу на C++, пожалуйста!
Помогите доделать программу
Множества. Помогите доделать программу
Помогите доделать задачу в С++
Помогите доделать код
Помогите доделать

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 05:44.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.