2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Уменьшить невязку
Сообщение18.05.2015, 11:42 
Аватара пользователя


09/07/12
189
Здравствуйте. У меня написана программа по поиску обратной матрицы с помощью присоединенной единичной матрицы. Программа работает хорошо , только вот на матрице Гильберта при размере 12 , невязка равняется 1.7 , а нужно , чтобы она была меньше единице. Невязка равняется норме ( максимальная сумма по столбцам) от матрицы $(AA^{-1} - E )$. Пробовал перемножать матрицы в другом порядке. Пробовал считать норму по другому ( максимальная сумма по срокам). Невязка меньше не становится. Привожу код функции , которая находит обратную матрицу:
Код:
int obrat(double *a, int n);
int obrat(double *a, int n)
{
    int i,j,i_1,i_2; double w=0;
    for(i=0;i<n;i++)
    {
        w=a[i*2*n+i];
        if(fabs(w)< MIL )
            return -1;
        a[i*2*n+i]=1;
        for(j=i+1;j<2*n;j++)
        {
            a[i*2*n+j]=a[i*2*n+j]/w;
        }
        for(i_1=0;i_1<n;i_1++)
        {
            if(i_1==i)
                continue;
            for(i_2=i;i_2<2*n;i_2++)
            {
                if(i_2==i)
                    w=a[i_1*2*n+i];
                a[i_1*2*n+i_2]-=a[i*2*n+i_2]*w;
            }
        }
    }
    return 0;
}

 Профиль  
                  
 
 Re: Уменьшить невязку
Сообщение18.05.2015, 13:34 
Заслуженный участник


16/02/13
4214
Владивосток
Странные, имхо, попытки. Матрица Гильберта — стандартный тест на поведение алгоритмов с плохообусловленными матрицами. Если ваша программа плохо с такими работает, естественным было б повышать точность (действительные числа многократной точности; рациональные числа; рациональные числа многократной точности; итерационные алгоритмы), а не манипулировать с понятием нормы. Если не хочется переписывать программу, возьмите за норму, скажем, одну сотую любой из норм — как понимаю, аксиомам нормы такая функция вполне себе будет удовлетворять.

 Профиль  
                  
 
 Re: Уменьшить невязку
Сообщение18.05.2015, 13:42 
Заслуженный участник
Аватара пользователя


01/09/13
4676
Лучше алгоритм менять - а то он какой-то "прямлинейно-плохой". Кажется, он накроется на матрице $$\begin{pmatrix}
1 & 0 & 0\\
0 & 0 & 1\\
0 & 1 & 0
\end{pmatrix}$$

 Профиль  
                  
 
 Re: Уменьшить невязку
Сообщение18.05.2015, 19:08 
Аватара пользователя


09/07/12
189
iifat При манипулирование с нормой и с перестановкой умножения , норма уменьшилась с 3,5 до 1,7 .
Geen Предполагается, что если на диагонали стоит ноль , то метод не применим.

 Профиль  
                  
 
 Re: Уменьшить невязку
Сообщение18.05.2015, 20:32 
Аватара пользователя


31/10/08
1244
fiztech
fiztech в сообщении #1016868 писал(а):
При манипулирование с нормой и с перестановкой умножения , норма уменьшилась с 3,5 до 1,7 .

И что с того? Какие бывают погрешности, от чего они зависят?

 Профиль  
                  
 
 Re: Уменьшить невязку
Сообщение19.05.2015, 20:26 
Аватара пользователя


09/07/12
189
Всем спасибо , разобрался.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group