Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 21:16   #1
Fanat56
Новичок
Джуниор
 
Регистрация: 27.12.2011
Сообщений: 3
По умолчанию Найти определитель матрицы...

Привет, помогите найти определитель матрицы 9-ого порядка, второй день сижу не могу понять как его найти в C#. Вот у меня есть код:


void Button3Click(object sender, EventArgs e)
{
double[,] a=new double[10,10];
double[] b = new double[10];
int q;
int j,i,Col_Row;
q = Convert.ToInt32(comboBox1.SelectedI tem);

//--------------------------------- для 3-ого порядка -------------------------------------------------
if ( q == 3){
for ( i = 0; i<= Convert.ToInt32(q)-1; i+=1)
{
for ( j = 0; j<= Convert.ToInt32(q)-1; j+=1)
{
a[i,j] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[j].Value));
}
b[i] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[3].Value));

}
double det_a,det_1,det_2,det_3,x1,x2,x3;
det_a = (a[0,0]*a[1,1]*a[2,2]+a[0,1]*a[1,2]*a[2,0]+a[1,0]*a[2,1]*a[0,2]) - (a[0,2]*a[1,1]*a[2,0]+a[1,0]*a[0,1]*a[2,2]+a[0,0]*a[1,2]*a[2,1]);
if(det_a != 0){
det_1 = (b[0]*a[1,1]*a[2,2]+b[0]*a[1,2]*a[2,0]+a[1,0]*a[2,1]*b[0]) - (b[0]*a[1,1]*a[2,0]+a[1,0]*b[0]*a[2,2]+b[0]*a[1,2]*a[2,1]);
det_2 = (a[0,0]*b[1]*a[2,2]+a[0,1]*b[1]*a[2,0]+b[1]*a[2,1]*a[0,2]) - (a[0,2]*b[1]*a[2,0]+b[1]*a[0,1]*a[2,2]+a[0,0]*b[1]*a[2,1]);
det_3 = (a[0,0]*a[1,1]*b[2]+a[0,1]*a[1,2]*b[2]+a[1,0]*b[2]*a[0,2]) - (a[0,2]*a[1,1]*b[2]+a[1,0]*a[0,1]*b[2]+a[0,0]*a[1,2]*b[2]);
x1 = Math.Round((det_1/det_a),3);
x2 = Math.Round((det_2/det_a),3);
x3 = Math.Round((det_3/det_a),3);
listBox1.Items.Add("Неизвестные переменные:");
listBox1.Items.Add("x1 = " + Convert.ToString(x1));
listBox1.Items.Add("x2 = " + Convert.ToString(x2));
listBox1.Items.Add("x3 = " + Convert.ToString(x3));
}
else{
MessageBox.Show("Определитель матрицы равен (0), система не имеет решений ...");
}
}
//--------------------------------- для 2-ого порядка -------------------------------------------------
if ( q == 2){
for ( i = 0; i<= Convert.ToInt32(q)-1; i+=1)
{
for ( j = 0; j<= Convert.ToInt32(q)-1; j+=1)
{
a[i,j] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[j].Value));
}
b[i] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[2].Value));

}
double det_a,det_1,det_2,x1,x2;
det_a = a[0,0]*a[1,1] - a[0,1]*a[1,0];
if (det_a != 0){
det_1 = b[0]*a[1,1] - a[0,1]*b[1];
det_2 = a[0,0]*b[1] - b[0]*a[1,0];
x1 = Math.Round((det_1/det_a),3);
x2 = Math.Round((det_2/det_a),3);
listBox1.Items.Add("Неизвестные переменные:");
listBox1.Items.Add("x1 = " + Convert.ToString(x1));
listBox1.Items.Add("x2 = " + Convert.ToString(x2));
}
else {
MessageBox.Show("Определитель матрицы равен (0), система не имеет решений ...");
}
}
//--------------------------------- для n-ого порядка -------------------------------------------------
if ( (q != 2) && (q != 3)){
for ( i = 0; i<= Convert.ToInt32(q)-1; i+=1)
{
for ( j = 0; j<= Convert.ToInt32(q)-1; j+=1)
{
a[i,j] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[j].Value));
}
b[i] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[2].Value));
}
//--------------------------------- для 4-ого порядка -------------------------------------------------
if (q == 4)
{
for ( i = 0; i<= Convert.ToInt32(q)-1; i+=1)
{
for ( j = 0; j<= Convert.ToInt32(q)-1; j+=1)
{
a[i,j] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[j].Value));
}
b[i] = double.Parse(Convert.ToString(dataG ridView1.Rows[i].Cells[2].Value));
}



}
}

}





}
Fanat56 вне форума Ответить с цитированием
Старый 27.12.2011, 22:01   #2
Maksimall89
Пользователь
 
Аватар для Maksimall89
 
Регистрация: 10.11.2010
Сообщений: 59
По умолчанию

Вам с C# вот суда http://programmersforum.ru/forumdisplay.php?f=59
Maksimall89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определитель матрицы на С GT_NiNo Помощь студентам 0 21.10.2011 18:53
Определитель матрицы Rekky Свободное общение 10 24.05.2011 20:40
Определитель матрицы 2 на 2 С++ Mashul'ka Помощь студентам 1 03.11.2010 00:08
Определитель матрицы Snake_ua Помощь студентам 7 10.02.2010 10:44