Форум программистов, компьютерный форум CyberForum.ru

ошибочки. как разобраться?найти точки перегиба - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Критику в студию http://www.cyberforum.ru/cpp-beginners/thread848859.html
Доброго всем времени суток! Я вот написал такой себе класс матриц, прошу оценить его и посоветовать что можно улучшить или изменить, как повысить быстродействие или, возможно, что-то надо добавить. Знаю,что надо сделать шаблон класса для разных типов данных, но дабы сейчас все было красиво и хорошо не загрязнял этим код! Любые дельные советы будут "лайкнуты"! matrix.h //класс матриц...
C++ Виртуальная функция не хочет перекрываться Возникла следующая ситуация, имеется базовый класс с виртуальной функцией, и два производных один с ним в одном файле, другой в соседнем, в обоих перекрываю виртуальный метод, ( есть дефолтная реализация оного), в итоге при вызове данного метода от объектов производных классов, только один из них ( тот который в одном файле) перекрывает дефолтный метод, что я делаю не так ? http://www.cyberforum.ru/cpp-beginners/thread848848.html
C++ Алгоритм сортировки
Дан одномерный масив. мне в нем нужно отсортировать по возростанию только те числа масива которые простые, а остальные оставить на той же позиции как и были. вот так я смотрю простое число или не int isSimple (int x) { int retVal = 1; int i = 2; while (i<=sqrt((double)x) && retVal==1)
C++ Класс домов и класс улиц для учета поступлений квартплаты. Массив
Задание: вырезано Файл StdAfx.h #pragma once #include "targetver.h" #include <stdio.h>
C++ Решение головоломок http://www.cyberforum.ru/cpp-beginners/thread848821.html
Скажи пожалуйста, как должна работать программа, решающая головомку: составить, например, функцию проверки окончания и прогонять все варианты или не знаю, пробывать составить какое-то дерево ходов или мыслить так же как решает человек Хочу написать решатель для головоломки Первые встречные http://www.cross-plus-a.ru/html/voc7abc.htm
C++ Изменение цвета текста Привет всем. Можно ли в консоле менять цвет ЧАСТИ текста? тоесть выделить одно слово другим цветом например Просто system(color ** ) изменяет всё целиком. В нэте не нашёл нормального ответа на мой вопрос подробнее

Показать сообщение отдельно
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
25.04.2013, 23:50     ошибочки. как разобраться?найти точки перегиба
нужно найти точки перегиба функции..видела гдето у вас здесь на форуме подобное но сама все равно не могу одолеть.
Дословно не помню,но преподаватель сказала что для поиска лучше искать точки перегиба исходя из значений, при которых поменяется знак производной.

Из школы знаю,что если для функции y = f (x) в некоторой точке xо f² (xo ) = 0 и при переходе через эту точку меняет свой знак на обратный, то точка М(хo,f(xo)) является точкой перегиба функции.

Для второй производной я программу составила, а как правильно поставить условие для точек перегиба не могу понять.. В том что написала в программке для условия по точкам, почему-то значения считает не те которые надо, или вообще не считает.. Объясните что не так, и как правильнее.
То что у меня наработано:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double   f1(double  x)/*vira*enie 1*/
 {return (x*cos(x))/(1+ pow(x,2));}
 
double   f2 (double  x) /*vira*enie 2*/
{return(exp(x)/x);}
 
double  f3 (double  x)/*vira*enie 3*/
{return (1/(3+2*cos(x)));}
 
/* pervaja proizvodnaja iz klassi4eskogo opredelenija eto f'(x)=(f(x0)-f(x))/(x-x0) */
/* opredelim proizvodnyjy s tochnost'jy h=x-x0=0.001 */
/* znachit x0=x-h */
/*polychaem znachenie dlja proizvodnoj (f(x-h)-f(x)/h */
double  proizv1(double (*f)(double ),double  x)
{ double   h;
h=0.001;
return(( (*f)(x-h)-(*f)(x))/h);      //dlja pervoj proizvodnoj: proizv1(f1) proizv1(f2) proizv1(f3)
}
 
 
/*vtoraja proizvodnaja iz klassi4eskogo opredelenija*/
/* f''(x)=(f'(x))' proizvodnaja ot proizvodnoj*/
double  proizv2( double  (*proizv)(double ),double   x)
{ double  h;
  h=0.001;
//mo*no vizvat' pervyjy proizvodnyjy: ff=proizv1(f1);ff=proizv1(f2);ff=proizv1(f3);//
return(( (*proizv)(x-h)-(*proizv)(x))/h);  //dlja vtoroj proizvodnoj ili return(( (proizv1)(x-h)-(proizv1)(x))/h); 
}
 
void tochki(double  (*t)(double ),double  xn,double   xk,double  dx)    //vizov bydet tochki(proizv2,xn,xk,dx)
{double  x1; int i,z; double  a[20];
 printf(" ____________________________\n");
 printf("|___i___|___x___|_____y______|\n");
 i=0;
  for (x1=xn;x1<=xk;x1+=dx)
   {proizv2(t,x1);
    i++;
    printf("|___%d___|__%.1f__|_%.5f___|\n",i,x1,proizv2(t,x1));
   }
  
  
  
  printf("\ntochka peregiba:");
       for(z=0;z<=i;z++) 
       { for(x1=xn;x1<=xk;x1+=dx)
            { a[z]=proizv2(t,x1);
             } 
        }
 /// zdes' 4toto ne tak
 
   for(z=0;z<=i;z++) /*yslovie syshestvovanija tochki peregiba*/
    { for(x1=xn;x1<=xk;x1+=dx)
          {if ( (a[z]*a[z+1])<0 )printf("\nx=%.1f y=%.5f",x1,a[z+1]);}
     }           //tochka peregiba tam, gde fynkcija menjaet znak:     
                 
           //v f1 tochki peregiba dol*nu but' x= -2 0 3 y=sootvetstvyjyshie
          //f2 tochki peregiba dol*nu but' x=0 y y=sootvetstvyjyshie
        // f3 tochki peregiba dol*nu but' x=0,5 ГЁ x=3,5 y=sootvetstvyjyshie
   
     
  
  
  
  
  
printf("\n");  
} 
 
void vibor(  )
{int n;
printf("S kakoj fynkciej bydem rabotat'?\n");
printf("1.  x*cos(x))/(1+ pow(x,2)\n");
printf("2. exp(x)/x\n");
printf("3. 1/(3+2*cos(x))\n");
printf("0. Vihod\n"); 
  scanf("%d",&n);
   switch(n)
            {case 1: tochki(f1,-4,4,1); break;//dlja pervoj fynkcii na intervale -4 4
             case 2: tochki(f2,-6,1,1); break;//dlja vtoroj fynkcii na intervale -6 1
             case 3: tochki(f3,0,4,1); break;//dlja tret'ej fynkcii na intervale 0 4
             case 0: break;    
             default:printf("Nevernij re*im");  
             }
}          
 int main()
  {vibor();
   system("pause");
   return 0;
   }
Могу изложить свои рассуждения по нахождению точек перегиба.Значения ведь идут последовательно при вычислении производной,значит их можно рассматривать как массив, где можно найти необходимые точки-значения.Если знаки сначала идут +++ ( (+)*(+) или (-)*(-) дают плюс)при произведении, а потом резко появится - при произведении( (+)*(-) или (-)*(+)дают минус), значит там где минус,то есть 1множитель*2множитель<0 нужно искать нужную точку ,второй множитель и будет искомым значением,ведь на нем меняется знак.Даже если потом будет +++ то при новом - будет еще одна точка..по моему логично..или не очень логичные и правильные рассуждения??если верные рассуждения,скажите что не правильно у меня в проге в этой части,или как правильнее записать..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru