ПЯВУ. Основы программирования. Лекция 14. Решение системы уравнений методом Гаусса. Вычисление числа Пи методом “МонтеКарло”
Содержание
- 2. Контрольные вопросы Почему в C# рекомендуют использовать свойства вместо полей данных? Что такое рекурсия? В чем
- 3. План лекции Решение системы уравнений методом Гаусса Вариант с выбором ведущего элемента Вычисление детерминанта методом Гаусса
- 4. Системы линейных уравнений и Матрицы a11*x1 + a12*x2 + … a1N*xN = b1 a21*x1 + a22*x2
- 5. Метод Гаусса a’11*x1 + a’12*x2 + … a’1N*xN = b’1 a’22*x2 + … a’2N*xN = b’2
- 6. Представление системы уравнений Матрицу представим в виде двумерного массива: double [,] M = new double[N, N+1];
- 7. Алгоритм вычитания строк Здесь k – номер строки, которую надо вычитать … static void SubtractRow(double [,]
- 8. Приведение матрицы к верхнетреугольному виду static void TriangleMatrix(double [,] M) { for(int i = 1; i
- 9. Решение Последнее уравнение содержит только 1 неизвестное – xN. После решения последнего уравнения, можно решить предпоследнее,
- 10. “Слабые” места SubtractRow: double m = M[k, k]; … M[i, j] = M[i, j] - M[k,
- 11. Улучшение метода Выбор “ведущего элемента”. Идея заключается в том, что бы каждый раз выбирать из оставшихся
- 12. Выбор ведущего элемента //Находит строку, в которой элемент n имеет наибольшее по модулю значение, // и
- 13. Усовершенствованная триангуляция матрицы static void TriangleMatrix(double [,] M) { for(int i = 1; i { SelectLeading(M,
- 14. Решение есть не всегда static bool TriangleMatrix(double [,] M) { for(int i = 1; i {
- 15. Решение public static double [] Solve(double [,] M) { if(!TriangleMatrix(M)) retun null; double v[] = new
- 16. Решение double[,] M = new double[4, 5] { { 2, 3, 1, 1, 1 }, {
- 17. Детерминант и метод Гаусса Если не применять выбор ведущего элемента, то детерминант – это просто произведение
- 18. Выбор ведущего элемента static bool SelectLeading(double [,] M, int n) { //Найдем номер строки, с наибольшим
- 19. Вычисляем детерминант static double Determinant(double [,] M) { double d = 1; for(int i = 1;
- 20. Контрольные вопросы Как в решении задачи проявился характер вычислений с числами с плавающей точкой? Какие преобразования
- 21. Вычисление числа Пи методом “Монте-Карло” Метод основан на применении для вычислений случайных чисел. Если моделировать попадание
- 22. Вычисление числа Пи Sокр = Пи*R2 Удобно взять R = 1 и ограничиться 1-ой четвертью математической
- 23. Вычисление Пи Реализация int N=1000000; int n=0; Double x, y; Random r = new Random(); for(int
- 25. Скачать презентацию