Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/54: Рейтинг темы: голосов - 54, средняя оценка - 4.72
11 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 104
1

Возведение матрицы в степень.

09.05.2011, 13:01. Показов 10868. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Тупая семестровая задачка...Вообщем звучит так:
"Следом квадратной матрицы называется сумма элементов, расположенных на главной диагонали. Даны квадратная матрица A, натуральное число N. Вычислить следы матриц A, A^2,...,A^N."

Если разобраться в тупой формулировки, то, как я себе представляю, нужно на C# WFA написать программу в которой пользователь в DataGridView будет вводить матрицу, и в какой нить numericUpDown степень в которую ее возвести. Дальше он будет получать ответ во втором DataGridView и где нить рядом след матрицы.

Проблема собственно в коде для возведение матрицы в степень, не могу сообразить как его реализовать. Я уже и забыл как это то на листочке сделать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2011, 13:01
Ответы с готовыми решениями:

возведение в степень матрицы
Помогите, пожалуйста, написала программу в си# возведение в степень матрицы, выводит ответ, но...

Возведение матрицы в степень
Задание: Консольное приложение. Которое подносит к произвольной степени матрицу произвольной...

Возведение большой матрицы, читаемой с файла, в степень N, и запись обратно в файл на C#
Доброго времени. Очень нужно написать программу на C#, которая прочитает с файла огромную матрицу с...

Бинарное возведение в степень числа типа BigInteger в степень Biginteger
Здравствуйте. Не могу реализовать алгоритм бинарного возведения в степень. Есть 2 экземпляра...

5
мастер топоров
916 / 741 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
09.05.2011, 15:17 2
возведение в квадрат - это в принципе перемножение матрицы саму на себя n раз
Умножение матриц можете посмотреть на википедии.
написать метод, который перемножает две квадратные матрицы и потом использовать его для возведения матрицы в степень
потом получить след матрицы
но если вам нужен только след матрицы в какой-то степени, то я подозреваю что можно не писать метод для перемножения матриц, ручками расписать выражение для следа матрицы в квадрате, в кубе и заметить какую-то тенденцию и потом её использовать. мне кажется что такая тенденция должна быть. это ускорит весь процесс решения задания если матрицы и степени у вас будут большими
0
11 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 104
09.05.2011, 15:30  [ТС] 3
Цитата Сообщение от Koran Посмотреть сообщение
возведение в квадрат - это в принципе перемножение матрицы саму на себя n раз
Умножение матриц можете посмотреть на википедии.
написать метод, который перемножает две квадратные матрицы и потом использовать его для возведения матрицы в степень
потом получить след матрицы
но если вам нужен только след матрицы в какой-то степени, то я подозреваю что можно не писать метод для перемножения матриц, ручками расписать выражение для следа матрицы в квадрате, в кубе и заметить какую-то тенденцию и потом её использовать. мне кажется что такая тенденция должна быть. это ускорит весь процесс решения задания если матрицы и степени у вас будут большими
Koran нет это не перемножение! http://www.webmath.ru/web/prog17_1.php

Решил что показывать последнюю матрицу не буду. Вообщем сделать смог пока только интерфейс! Кто поможет? Возможно за вознаграждение!
Вложения
Тип файла: rar MatriX.rar (40.3 Кб, 74 просмотров)
0
11 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 104
09.05.2011, 15:40  [ТС] 4
Вот еще нашел
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void degree(double x[][n],
 
double y[][n],double z[][n],int deg) 
        {
         void mult(double x[][n],
         double y[][n],double z[][n]);
 int i,j,k;
         for(i=0;i < n;i++)
                for(j=0;j < n;j++)
                        y[i][j]=x[i][j];
         if(deg==1)
                for(i=0;i < n;i++)
                        for(j=0;j < n;j++)
                                z[i][j]=x[i][j];
         for(k=1;k < deg;k++)
                {
                mult(x,y,z);
                for(i=0;i < n;i++)
                        for(j=0;j < n;j++)
                                y[i][j]=z[i][j];
                }
         return;
        }
0
11 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 104
11.05.2011, 18:36  [ТС] 5
Так у меня нечего и не получается, обшарил все, не чего не могу найти, сам тоже придумать не могу. Понимаю умом что должен быть тройной вложенный цикл, а как индексы расположить правильно....Вообщем вот последний исходник там сделано рандомное заполнение матрицы и выделение ошибок, если не правильно матрицу заполнили. А основная части нету! Помогите, спасите!
Вложения
Тип файла: rar MatriX.rar (46.3 Кб, 54 просмотров)
0
11 / 11 / 2
Регистрация: 21.04.2010
Сообщений: 104
19.05.2011, 17:38  [ТС] 6
Вот полностью рабочий вариант на МАКС баллов!
Вложения
Тип файла: rar MatriX2.rar (51.5 Кб, 605 просмотров)
1
19.05.2011, 17:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2011, 17:38
Помогаю со студенческими работами здесь

Возведение в степень
пишу код вот тут не получается Math.Pow(a, iList) / (iList+1); пишет что качестве оператора...

Возведение в степень
Здравствуйте.Такая проблема,не могу возвести число Е в степень с не целым числом. double d =...

Возведение в степень
Подробная задача: Определить количество повторений каждой из цифр 0,1,2,...,9 в числе NN (N в...

Возведение в степень
Как я знаю, возведение дроби в степень 1^-1 меняет знаменатель и числитель Итак, есть два числа:...


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

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