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

Найти минимум функции методом кубической параболы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При обращении к структуре из класса возникает исключение:нарушение прав доступа при записи. Почему? http://www.cyberforum.ru/cpp-beginners/thread1179294.html
Структура Test описана в классе ABC: class ABC{ struct Test { int get_i() { return i; } void put_i(int j) { i = j;} private: int i; }; public:
C++ Перевод из pascal в c++ (мигающие кружки) Здрасте, помогите переписать из паскаля в С++. Там где рисуеться можно псевдографикой, спасибо Uses crt, graph; _ Const N=50; M=50; jj=1; Var i,j,k,l,u, Gd, Gm : integer; p: real; h,E,EE,dE,x,a,fi,fi1,fi2 : real; s : array of real; Label metka; Procedure Energy; Var i,j : integer; begin E:=0; dE:=O; For i:=2 to N-1 do Forj:=2 to M-1 do begin http://www.cyberforum.ru/cpp-beginners/thread1179276.html
Как переопределить дружественную функцию ввода для класса наследника C++
Есть класс предок, который имеет такую вот дружественную функцию ввода: friend ifstream & operator >>(ifstream & inf, Tovar & obj) //Дружественная перегрузка оператора ввода { inf >> obj.nameT >> obj.countryT >> obj.amountT; return inf; } и есть класс наследник с 2мя дополнительными полями double priceT и bool perishableT
Переделать из файлового вывода в консольный C++
Помогите пожалуйста! У меня есть задача готовая, но там файловый ввод-вывод. Но мне очень нужно переделать все это в обычный вид, через cout, чтобы все вводить в компиляторе. #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; struct Student
C++ Найти в каждом числе количество четных и нечетных цифр http://www.cyberforum.ru/cpp-beginners/thread1179244.html
Вводится последовательность из N целых чисел. Найти в каждом числе количество четных и нечетных цифр (функциями оформить определение количества четных и нечетных цифр числа).В 17 и 19 строчке выбивает ошибку, помогите пожалуйста((( #include "stdafx.h" #include <iostream> #include <cstring> #include <math.h> using namespace std;
C++ Вычисление суммы членов ряда Сложность вызывает сама математика ибо вообщем не представляю решения данного примера. Было где-то, но... http://floomby.ru/s1/gWjaZR и это получается также? http://floomby.ru/s1/8WjYgw подробнее

Показать сообщение отдельно
imran
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 7
19.05.2014, 20:58  [ТС]     Найти минимум функции методом кубической параболы
Недоделанный код (не объявлял переменные, не проверял на ошибки):
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
double  a=1,  h=1, eps1 = 0.01, eps2 = 0.03, xl;
 
double f(double);
double fp(double);
double kit(double);
 
 
int main()
{
    
 
    xl = mp3();
    cout << "Minimum = " << xl << endl;
    system("pause");
    return 0;
}
 
double f(double x)
{
    return x*cos(x)-x;
}
 
double fp(double x)
{
    return (-x)*sin(x)+cos(x)-1;
}
double kip(double x1, double x2) // кубический интерполяционный полином
{
    double w, z, nu;
    z = (3 * (f(x1) - f(x2))) / x2 - x1 + fp(x1) + fp(x2);
 
 
    if (x1 < x2)
        w = pow((pow(z, 2) - fp(x1)*fp(x2)), 1 / 2.);
    else w = -pow((pow(z, 2) - fp(x1)*fp(x2)), 1 / 2.);
 
    nu = (fp(x2) + w - z) / (fp(x2) - fp(x2) + 2 * w);
 
    if (nu < 0) xl = x2;
    if (nu >= 0 && nu <= 1) xl = x2 - nu*(x2 - x1);
    if (nu>1) xl = 1;
 
    if (f(xl) >= f(x1)) xl = xl - 1 / 2.*(xl - x1);
    do {
        xl = xl - 1 / 2.*(xl - x1);
    } while (f(xl) <= f(x1));
    return xl;
}
double x1( double h)
{
    double x0, x, x1, x2, xk_p_1, xm, xm_m_1;
    int k = 0, m = 0;
    x0 = a;
    x = x0 + 1;
    if (fp(x0)<0)
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) + pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
    } while (fp(xm_m_1)*fp(xm)<=0);
    else
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) - pow(2, k)*h;
    
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
 
 
    } while (fp(xm_m_1)*fp(xm)<=0);
    x1 = pow(x, m - 1);
    return x1;
}
double x2(double h)
{
    double x0, x, x1, x2, xk_p_1, xm, xm_m_1;
    int k = 0, m = 0;
    x0 = a;
    x = x0 + 1;
    if (fp(x0)<0)
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) + pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
    } while (fp(xm_m_1)*fp(xm) <= 0);
    else
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) - pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
 
 
    } while (fp(xm_m_1)*fp(xm) <= 0);
    x2 = pow(x, m);
    return x2;
}
Есть две идеи:
1. х1 и х2 объединить в одну функцию и возвращать от туда структуру.
2. Менять значение иксов в этой структуре и отправлять в функцию, где считается полином.

Добавлено через 5 часов 42 минуты
Помогите пожалуйста, совсем не понимаю как это сделать

Добавлено через 1 час 53 минуты
А можно ли менять значение x1 и x2, например в меине (xl=x1, x1=x2 и тд) и отправлять их в функцию kip?

Добавлено через 21 час 49 минут
Никто не может помочь? :'(
 
Текущее время: 12:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru