- Член од
- 21 октомври 2009
- Мислења
- 1.533
- Поени од реакции
- 2.411
еве ти метод за пресметка на инверзна 3х3, пресметана е детерминантата на влезна матрица d во променливата detA. Ова е C#, за C++ во Dev C++, во main преку тастатура внеси матрица и потоа искористи дел од методава за пресметка на 3х3 детерминанта.Здраво
Може ли некој да ми каже како ќе ја пресметаме вредноста на детерминанта од втор и трет ред?
Детерерминантата се задава од тастатура.
Треба да биде напишана во Dev C++. Фала
За 2х2 детерминанта е полесно.
се откажав од барање на алгоритам за пресметка на инверзна матрица..
се решив да го куцам амалски ( за секој член од матрицата соодветниот производ)
Направив за 3х3, а на ист начин ќе го направам за 4х4. Ако некој му текни некаков алгоритам нека постира, ќе се најде некогаш за некого, јас се откажав од алгоритмот. Ќе одам пешки
Еве за 3х3
за 4х4 еве ги пресметките, треба да ги откуцам вечер.Код:public static double[,] InverseMatrix(double[,] d) { double[,] m = d; [COLOR=#ff0000]double detA[/COLOR] = m[0, 0] * (m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) - m[0, 1] * (m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) + m[0, 2] * (m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]); double det = 1 / (detA); double[,] fin = new double[3, 3]; fin[0, 0] = det * (m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]); fin[0, 1] = det * (m[0, 2] * m[2, 1] - m[0, 1] * m[2, 2]); fin[0, 2] = det * (m[0, 1] * m[1, 2] - m[0, 2] * m[1, 1]); fin[1, 0] = det * (m[1, 2] * m[2, 0] - m[1, 0] * m[2, 2]); fin[1, 1] = det * (m[0, 0] * m[2, 2] - m[0, 2] * m[2, 0]); fin[1, 2] = det * (m[0, 2] * m[1, 0] - m[0, 0] * m[1, 2]); fin[2, 0] = det * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]); fin[2, 1] = det * (m[0, 1] * m[2, 0] - m[0, 0] * m[2, 1]); fin[2, 2] = det * (m[0, 0] * m[1, 1] - m[0, 1] * m[1, 0]); return fin; }
каде