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
4113
Владивосток
Странные, имхо, попытки. Матрица Гильберта — стандартный тест на поведение алгоритмов с плохообусловленными матрицами. Если ваша программа плохо с такими работает, естественным было б повышать точность (действительные числа многократной точности; рациональные числа; рациональные числа многократной точности; итерационные алгоритмы), а не манипулировать с понятием нормы. Если не хочется переписывать программу, возьмите за норму, скажем, одну сотую любой из норм — как понимаю, аксиомам нормы такая функция вполне себе будет удовлетворять.

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


01/09/13
4319
Лучше алгоритм менять - а то он какой-то "прямлинейно-плохой". Кажется, он накроется на матрице $$\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, Супермодераторы



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

Сейчас этот форум просматривают: mihaild


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

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