Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2011, 20:46   #1
Obi_Van
 
Регистрация: 14.05.2011
Сообщений: 8
Восклицание Проблема Полином Лагранджа С++ Всё норм до 7 строки?????

есть 10 узловых точек масив _x[10] и значения в точках f_x[10] для хЄ[1,9] c шагом h=0.32 найти за аппроксимацией Лагранджа найти значения функции!!!!!!! и непосредственно за формулой у=arct(sin(x))
Код:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
float func(float x)
{
      return atan(sin(x));
}

double * create_y()
{
     double _x[10]={1.00,1.32,1.64,1.96,2.28,2.60,2.92,3.24,3.56,2.88};
     double f_x[10]={0.7,0.77,0.78,0.75,0.65,0.48,0.22,-0.1,-0.39,-0.59};
     double * p;
     p=(double *)malloc(26*sizeof(double));
     double x=1;
     //int t=1;
     double s, a=1.0;
     for (int i=0;i<26;i++)
     {
         s=0;
         for (int j=0;j<10;j++)
         {
             a=1.0; 
             for(int t=0;t<10;t++)   
               {
                 if (t!=j) a*=((x-_x[t])/(_x[j]-_x[t]));   
               }
             s+=(f_x[i])*a;
         }
         x+=0.32;
         p[i]=s;
     } 
     return p;
     /*for(int i=0;i<26;i++)
     {
             cout<<(*(p+i))<<endl;
             } */
}
int main()
{
      double x=1;
      int t=1;
      double h=0.32;
      double * pp;
      pp=(double *)malloc(26*(sizeof(double)));
      pp=create_y();
      while(x<=9)
      {
                 printf("f %u ----->  %-5.2f     %5.2f\n",t,x,func(x));
                 //printf("l   -------> %-5.2f     %5.2f\n",x,(*(p+x));
                 cout<<(*(pp+t))<<endl;
                 printf("_______________________________________________\n");
                 x+=h;
                 t+=1;
      }
      //create_y();
      char ch;
      ch=getch();
      system("PAUSE");
      return 0;
}

Последний раз редактировалось Obi_Van; 27.09.2011 в 21:38.
Obi_Van вне форума Ответить с цитированием
Старый 27.09.2011, 20:48   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы уже второй раз выкладываете этот кусок кода, но так и не рассказали ничего про него.

И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа сообщения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 22:30   #3
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Значения даны на отрезке [1.00; 3.56], а хочешь получить для x = 9? Не слишком круто?
Так вообще всё правильно вроде.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
канонический полином littlefella Помощь студентам 0 11.04.2011 19:17
черный экран призапуске минут 5 а потом всё норм toldo Компьютерное железо 7 13.01.2011 22:33
Delphi полином NewEra Помощь студентам 4 19.05.2010 21:32
полином лагранжа milate Общие вопросы C/C++ 10 24.05.2009 13:44
не компилируется норм (Visual c++) adwaer Visual C++ 4 19.03.2009 01:42