Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 1
1
.NET 4.x

Метод покоординатного спуска (метод Гаусса - Зейделя)

22.10.2018, 22:13. Показов 3563. Ответов 0

Author24 — интернет-сервис помощи студентам
Есть алгоритм, который нужно реализовать. Основа для кода готова, смотрите ниже. Проблема заключается в шагах 3, 8. Как понять эти шаги, что используется в C# для нахождения argmin? z равняется 0.5



Где "<----------", должен быть код программы, который еще не реализован

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Linq;
 
namespace Programm3Console
{
class Program
{
    static void Main(string[] args)
    {
        int k = 0;
        int n = 3; //count column and line in matrix
        int i = 0;
        double z = 0.1; //коофициент дробления который равен 0.1 или 0.5
        double[] p = new double[n];//предыдущие значение
        double[] x = new double[n];//текущее значение
        double[,] a = new double[n,n];//матрица коофициентов
        double ak = 0; //целое альфа
 
        int numStep = 1;
 
        bool isReady = false;
 
        //alghorithm
        do
        {
            switch (numStep)
            {
                case 1:
                    k = 0;
 
                    //go to step 2
                    numStep = 2;
                    break;
                case 2:
                    i = 0; //так как первый элемент массива начинается с нуля, то i=0 вместо i=1
 
                    //go to step 3
                    numStep = 3;
                    break;
                case 3:
                    //Найти целое альфа     <----------
 
 
                    //go to step 4
                    numStep = 4;
                    break;
                case 4:
                    //вычислить x (Текущее значение) <----------
 
                    //go to step 5
                    numStep = 5;
                    break;
                case 5:
                    if(i==n-1)
                    {
                        //go to step 7
                        numStep = 7;
                    }
                    else
                    {
                        //go to step 6
                        numStep = 6;
                    }
 
                    break;
                case 6:
                    i++;
                    //go to step 3
                    numStep = 3;
                    break;
                case 7:
                    if(x[k] != p[k])
                    {
                        k++;
                        //go to step 2
                        numStep = 2;
                    }
                    else
                    {
                        //go to step 8
                        numStep = 8;
                    }
                    break;
                case 8:
                    //проверить критерий останова <----------
                    break;
                case 9:
                    // Положить h1 = zh1, ..., h = zh и перейти на шаг 2 <----------
                    break;
                case 10:
                    //Положить х* = х <----------
 
                    //закончить поиск
                    isReady = true;
                    break;
                default:
                    break;
            }                
 
        }
        while (!isReady);
 
    }
}
}
Миниатюры
Метод покоординатного спуска (метод Гаусса - Зейделя)   Метод покоординатного спуска (метод Гаусса - Зейделя)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2018, 22:13
Ответы с готовыми решениями:

Метод Зейделя\Ньютона
Здравствуйте. Помогите пожалуйста - необходимо методом Зейделя или методом Ньютона решить...

Переделать программу, использующую метод Гаусса в метод Барейса
Всем ДВС! подскажите пожалуйста, как переделать эту программу использующую метод Гаусса в метод...

Метод градиентного спуска
Помогите пожалуйста! Мне нужно запрограммировать метод градиентного спуска !!!!! Заранее спасибо!

Метод наискорейшего спуска
программа на нахождение градиента есть,а как сделать методом наискорейшего спуска? Метод...

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

Метод Зейделя
Здравствуйте, нуждаюсь в вашей помощи! Код должен решать систему уравнений методом Зейделя....

Метод покоординатного спуска (Гаусса-Зейделя)
Здравствуйте, помогите пожалуйста, с решением данной задачи: f(x) = Nx1^2 + Nx2^2 - Nx1x2 + x2 -&gt;...

Оптимизация методом покоординатного спуска (Гаусса-Зейделя)
Есть рабочий вариант: clear all; clc; % Значения коэффициентов c1 = -2; c2 = -1; c12 = 1; ...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++


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

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