С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 19.10.2013
Сообщений: 159
1

Нахождение минимума квадратичной функции

22.12.2016, 21:59. Показов 1369. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана квадратичная функция
a11*x1*x1+2*a12*x1*x2+2*a13*x1*x3+a22*x2*x2+2*a23*x2*x3+a33*x3*x3+2*a14*x1+2*a24 *x2+2*a34*x3 -> min
где:
a11=1.2475;
a12=0.847;
a13=0.4332;
a22=1.0135;
a23=-0.0556;
a33=0.739;
a14=-1.6227;
a24=-1.2001;
a34=-0.6323;

Использовать для неё методы:
- Ньютона;
- сопряжённых градиентов;
- градиентный метод с дроблением шага.

На текущем этапе код получается таким:
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
#include <iostream>
#include <math.h>
#include <conio.h>
#include <iomanip>
#include <fstream>
#include <stdlib.h>
 
using namespace std;
//исходная функция
double f(double a11, double a12, double a13, double a14, double a22, double a23, double a24, double a33, double a34, double x1, double x2, double x3)
{
    return a11*x1*x1+2*a12*x1*x2+2*a13*x1*x3+a22*x2*x2+2*a23*x2*x3+a33*x3*x3+2*a14*x1+2*a24*x2+2*a34*x3;
}
//производная по x1
double ffx1(double a11, double a12, double a13, double a14, double a22, double a23, double a24, double a33, double a34, double x1, double x2, double x3)
{
    return 2*a11*x1+2*a12*x2+2*a13*x3+a14; 
}
//производная по x2
double ffx2(double a11, double a12, double a13, double a14, double a22, double a23, double a24, double a33, double a34, double x1, double x2, double x3)
{
    return 2*a12*x2+2*a22*x2+a23*x2+2*a24;
}
//производная по x3
double ffx3(double a11, double a12, double a13, double a14, double a22, double a23, double a24, double a33, double a34, double x1, double x2, double x3)
{
    return 2*a13*x1+a23*x2+2*a33*x3+2*a34;
}
int main()
{
    setlocale( LC_ALL,"Russian" );
    double x1;
    double x2;
    double x3;
    double a11=1.2475;
    double a12=0.847;
    double a13=0.4332;
    double a22=1.0135;
    double a23=-0.0556;
    double a33=0.739;
    double a14=-1.6227;
    double a24=-1.2001;
    double a34=-0.6323;
    double eps;
    cout << "Выберите метод решения квадратичной функции:\n" << endl;
    cout << "1) Градиентный метод\n" << endl;
    cout << "2) Метод Ньютона\n" << endl;
    cout << "3) Метод сопряжённых градиентов\n" << endl;
    int k;
    cin>>k;
    if ((k!=1)&&(k!=2)&&(k!=3))
    cout << "Неверный выбор!" << endl;
    else 
    {
        cout << "Введите точность eps" << endl;
        cin >> eps;
    }
    system("PAUSE");
}
Проверьте, правильно ли я вычислил производные.

Добавлено через 1 час 56 минут
Нашел кое-что: https://basegroup.ru/community/articles/conjugate
https://sfedu.ru/www/umr_main.... _id=103911

Описанные там методы нужно перевоплотить в код)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2016, 21:59
Ответы с готовыми решениями:

Непрерывные функции и нахождение минимума на отрезке
Помогите реализовать функцию Solve из данной задачи: Задается непрерывная функция f(x)....

Нахождение минимума функции методом половинного деления
Есть программа нахождения корня методом половинного деления. Как ее переделать, чтобы она находила...

Нахождение минимума функции на интервале способом перебора
Помогите реализовать программу, которая позволяет найти минимум некоторой функции на заданном...

Нахождение минимума функции одной переменной методом кубической параболы
Допущена ошибка в коде.Предполагаю,что неверно выбран x1 в самой функции метода.Также возможна...

0
22.12.2016, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2016, 21:59
Помогаю со студенческими работами здесь

Нахождение локального минимума
Написать программу: дана последовательность вещественных чисел. Найти и вывести на экран все...

Нахождение локального минимума
Здравствуйте!!!! Напишите программу или алгоритм для нахождения локального минимума. Заранее...

Нахождение минимума k в матрице
подскажите пожалуйста какой код будет для нахождения минимума k в матрице

Рекурсия, нахождение минимума в массиве
В общем, в названии темы само задание. int min(int a,int n) { int minim=a; if(minim&gt;a)...

Нахождение минимума в Скользящем окне
Добрый день. Есть такая задача: существует массив M заполненный значениями типа float. После...

Нахождение минимума из двух чисел
Делая лабораторную с условием: Найти минимум из двух чисел х и у, написала такого вида программу:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru