Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 30

Не работает код решения СНАУ методом Ньютона

14.10.2015, 18:51. Показов 1417. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите понять в чем ошибка! Решение СНАУ методом ньютона. Если меняется Е, то вообще не выходит решение. При данном Е, решение неправильное (при н.у. х=1,у=1)
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Sistema
{
    class Program
    {
        static void F(double[] x, ref double[] y)//уравнения
        {
            y[0] = -Math.Sin(x[1]) - 0.4;
            y[1] = 0.5*(Math.Cos(x[0] + 1)) ;
            
           
        }
        static void get_matrix(double[][] a, ref double[][] b, int n, int i)
        {
 
            int di = 0, dj = 0;
            for (int ki = 0; ki < n - 1; ki++)
            {
                if (ki == i) di = 1;
                dj = 0;
                for (int kj = 0; kj < n - 1; kj++)
                {
                    if (kj == 0) dj = 1;
                    b[ki][kj] = a[ki + di][kj + dj];
                }
            }
        }
 
        static double Det(double[][] a, int n)//детерминант матрицы а
        {
            double d = 0;//определитель
            int k = 1;
            double[][] b = new double[n][]; //массив указателей на строки
            for (int i = 0; i < n; i++) //выделение памяти под каждую строку массива
                b[i] = new double[n];
            if (n == 1) d = a[0][0];
            else if (n == 2) d = a[0][0] * a[1][1] - a[1][0] * a[0][1];
            else
                for (int i = 0; i < n; i++)
                {
                    get_matrix(a, ref b, n, i);
                    d += k * a[i][0] * Det(b, n - 1);
                    k = -k;
                }
            return d;
        }
 
        static void Jacobian(double[] x, ref double[][] a)
        {
            double det;
            //забиваем матрицу частными производными            
            a[0][0] = 0; a[0][1] = -Math.Cos(x[1]);
            a[1][0] =-0.5*(Math.Sin(x[0]+1)); a[1][1] = 0;
            
            det = -Math.Cos(x[1])*0.5*Math.Sin(x[0]+1);
            for (int i = 0; i < 2; i++)
                for (int j = 0; j < 2; j++) a[i][j] = a[i][j] / det;
       
        }
 
        static void Newthon(ref double[] x, double eps, ref int k)
        {
            bool cod;
            double[] x0 = new double[2];
            double[] y = new double[2];
            double[][] a = new double[2][];
            for (int i = 0; i < 2; i++) a[i] = new double[2];
            do
            {
                for (int i = 0; i < 2; i++) x0[i] = x[i];
                F(x, ref y);
                Jacobian(x, ref a);
                for (int i = 0; i < 2; i++)
                    for (int j = 0; j < 2; j++) x[i] = x[i] - a[i][j] * y[j];
                cod = true;
                for (int i = 0; i < 2; i++)
                    if (Math.Abs(x[i] - x0[i]) > eps) cod = false;
                k++;
            } while (cod == false);
 
          
 
        }
 
        static void Main(string[] args)
        {
            double eps = 0.001;
            double[] x = new double[2];
            x[0] = 1; x[1] = 1; 
            int k = 0;
            Newthon(ref x, eps, ref k);
            Console.WriteLine("X:");
            for (int i = 0; i < 2; i++) Console.WriteLine(x[i]);//выводим иксы...
            Console.WriteLine(k);
            double[] y = new double[2];
            F(x, ref y);
            Console.WriteLine("Y:");
          
            for (int i = 0; i < 2; i++) Console.WriteLine(y[i]);//это для проверки...
           
            Console.ReadKey();
 
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2015, 18:51
Ответы с готовыми решениями:

Решение СНАУ методом Ньютона
Здравствуйте уважаемые эксперты. Вообщем задание написано в теме. У меня сразу же возникли вопросы по его выполнению:( Как ввести сами...

Решение СНАУ методом Ньютона
Здравствуйте! Необходимо составить программу вычисления системы нелинейных алгебраических уравнений методом Ньютона в среде матлаб....

Решение СНАУ методом Ньютона
Нужно написать программу для решения систем нелинейных алгебраических уравнений методом Ньютона. Наибольшая сложность заключается в том что...

1
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
14.10.2015, 19:07
В подобных случаях лучше всего ставить точки остановки и шагать. при этом на каждом шаге можно смотреть значение переменных(в спец окне или просто наведя на них курсор в коде)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2015, 19:07
Помогаю со студенческими работами здесь

Решение СНАУ методом Ньютона
РЕбят, такое дело, есть у меня задание, решение СНАУ методом Ньютона. Даже не знаю с чего начать, может поможете хотяб пример...

Программа для решения уравнений методом Ньютона: улучшить код
Имеется программа для решения уравнений методом Ньютона в VB 6.0.Только в моей проге максимальная степень 5-я которую считает,а попросили...

Решение СНАУ метод Ньютона
есть файл в excel, там таблица, её нужно сделать в программе. 1. в программе вписать начальные иксы и эпсилон (10^-9) 2. при нажатии...

Метод Ньютона в решении СНАУ
РЕбят, помогите с прогой. Нужна прога которая решает СНАУ методом Ньютона. Без нее не защищусь. Заранее спасибо.

не по теме: производная для решения НУ методом Ньютона
есть функция : double f( double x ){ double fx = sin(pow(x,0.5)) - cos(pow(x,0.5)) + 2 * pow(x,0.5) ; return fx ; } ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru