Форум программистов, компьютерный форум, киберфорум
MathCAD
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для MAZUR777
610 / 135 / 132
Регистрация: 15.04.2010
Сообщений: 554

Нахождения экстремума (исправить ошибки и добавить матрицу Гессе)

03.10.2012, 02:13. Показов 2301. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день помогите, пожалуйста исправить ошибки и добавить матрицу Гессе у всех трёх
Вложения
Тип файла: rar экстремумы.rar (311.1 Кб, 26 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2012, 02:13
Ответы с готовыми решениями:

Составить матрицу Гессе
Привет всем! Ребят задача такая: Есть функция f(x0)=2x1^2+x1*x2+x2^2 где точка x0= Нужно составить матрицу Гессе в точке x0= ...

Исправить ошибки в работе программы нахождения координат
//а) удалить все точки не из окружности радиуса 10 с центром в начале координат //б) подсчитать сумму расстояний от начала координат до...

Помогите исправить ошибки в коде нахождения букв в тексте
Пишу программу на нахождение букв в тексте, и выдает 3 ошибки перетыкал, не знаю, что не так, отредактируйте пожалуйста, вот код: ...

3
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
03.10.2012, 10:06
Цитата Сообщение от MAZUR777 Посмотреть сообщение
...помогите, пожалуйста исправить ошибки...
По-моему так...
Цитата Сообщение от MAZUR777 Посмотреть сообщение
...и добавить матрицу Гессе у всех трёх
В примерах эта матрица присутствует?
Вложения
Тип файла: rar экстремумы_испр.rar (132.8 Кб, 31 просмотров)
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
03.10.2012, 10:18
Цитата Сообщение от MAZUR777 Посмотреть сообщение
...и добавить матрицу Гессе
А то вот...
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
/*Данная программа вычисляет гессиан системы функций. */
/* Используется библиотека ublas */
 
#include "ublas/matrix.hpp"
#include "ublas/io.hpp"
#include "ublas/vector.hpp"
#include <iostream>
#include <cmath>
#include <fstream>
 
//using namespace std;
using namespace boost::numeric::ublas;
//using namespace std;
 
typedef  double (*Function)(vector<double>) ;
 
 
double f(vector<double> point)
{
    //return 2*point[0] * point[0] +point[0] * point[0] +  3*point[1] * point[1];
    return point[0] *point[0] * sqrt(abs(point[1])) ;
}
 
 
 
matrix<double> ComputeHessian( Function f, vector<double> args, double step)
{
    //f - указателей на функцию, для которой вычисляется гессиан
    //args - точка, в которой вычисляется гессиан
    //step - шаг метода вычисления
    //Для представления матрицы используется класс matrix из библиотеки ublas
    
    
    int varCount = args.size();
    matrix<double> hessian(varCount, varCount);
 
    //Вспомогательные 
    vector<double> fPlus(varCount);
    vector<double> fMinus(varCount);
    
 
    double curFValue = f(args); //значение функции в текущей точке 
    for (int i = 0; i < varCount; i++)
    {
        
        /* В случае производной по одной переменной берём в качестве аппроксимации вторую центральную производную */
        fPlus[i] = f(args + step * unit_vector<double>(varCount, i) );
        fMinus[i] = f(args - step * unit_vector<double>(varCount, i) );
 
        hessian(i, i) = (fPlus[i] - 2 * curFValue + fMinus[i]) / (step * step);
    }
    
    for (int i = 0; i < varCount; i++)
        //Так как гессиан симметричен, вычисляем только его половину
        for (int j = i + 1; j < varCount; j++)
        {
 
            double x =  f(args +  step * (unit_vector<double>(varCount, i) + unit_vector<double>(varCount, j) ) );
            hessian(i, j) =  (x - fPlus[i] - fPlus[j] + curFValue) /(step * step) ;
        }
    
 
    
    for (int i = 0; i < varCount; i++)
        for (int j = 0; j < i; j++)
            hessian(i,j) = hessian(j, i);
 
 
    return hessian;
}
 
int Hessian()
{
    /*Чтобы вычислить якобиан для другого набора функций, создайте эти функции
     и запишите в массив func указатели на них */
 
    std::ofstream out("output.txt");
    out.setf(std::ios_base::fixed, std::ios_base::floatfield);
    out.precision(15);
    std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield);
    std::cout.precision(6);
    vector<double> point(2, 1.0) ; // Задание точки, в которой вычисляется якобиан
    double step = 1e-4; //Задание шага метода
 
    matrix<double> hessian  = ComputeHessian(&f, point, step);
    matrix<double> ist(2, 2);
    ist(0, 0) = 2;
    ist(1, 0) = 1;
    ist(0, 1) = 1;
    ist(1, 1) = 0.25;
 
    //Вывод результата
    std::cout << "Hessian of given function in point (";
    for (int i = 0; i < point.size() - 1; i++)
        std::cout << point[i] << ", ";
    std::cout << point[ point.size() - 1] << ") equals: " << std::endl; 
    std::cout << hessian;
 
    return 0;
}
2
Эксперт по математике/физике
1505 / 1026 / 159
Регистрация: 12.06.2012
Сообщений: 2,083
03.10.2012, 16:23
Работа с матрицей Гессе в Mathcad:
http://mm.lti-gti.ru/data/met1.pdf
http://www.itlab.unn.ru/upload... ce_2_1.pdf
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2012, 16:23
Помогаю со студенческими работами здесь

Процедура для нахождения просроченного товара - исправить синтаксические ошибки
// процедура для нахождения просроченного товара procedure ptovar (const Base:TBaseMass; const NumOfRec: byte); var i,j,k:byte; ...

Реализовать рекурсивную функцию для нахождения суммы n элементов последовательности (найти и исправить ошибки в коде)
Задание : С помощью рекурсивной функции получить сумму n элементов последовательности: S = 1 + 1/2 + 1/3 +...+ 1/n. в консоль...

Стек. Исправить ошибки или добавить функцию удаления элемента из стека
Здравствуйте, не могли бы Вы мне помочь исправить ошибки и добавить простенькую функцию. Ошибки: строка 29 - отсутствуют экземпляры...

Алгоритмы нахождения экстремума без исходной функции
Здравствуйте, есть двумерный круг/овал, центр которого является экстремумом, из исходных данных у нас только есть ненулевой коэффициент,...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru