МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «ИННОВАЦИОННАЯ НАУКА» №11-2/2016 ISSN 2410-6070
ПЕДАГОГИЧЕСКИЕ НАУКИ
УДК 378
Алашеева Е.А.
к.ф.-м.н., доцент, ПГУТИ, г.Самара Гранкин А.М. Студент, гр.ИСТ-52, ПГУТИ, г.Самара
ОБ ОСОБЕННОСТЯХ ПРЕПОДАВАНИЯ ПРЕДМЕТОВ МАТЕМАТИЧЕСКОГО ЦИКЛА У СТУДЕНТОВ СПЕЦИАЛЬНОСТИ «ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ»
Аннотация
Часто при изучении предметов математического цикла у студентов-программистов возникают вопросы где можно использовать полученную информацию на практике. В данной статье на примере тем «методы решения линейных алгебраических уравнений» и «определённый интеграл» рассматривается, как можно заинтересовать студентов в тематике занятия и где применить приобретённые знания.
Ключевые слова
Численные методы, системы линейных алгебраических уравнений, определённый интеграл, метод Гаусса, метод Симпсона
Будем решать систему:
Чтобы у студентов специальности «информационные системы и технологии» при изучении математики возникал интерес к предмету, можно кроме классических аспектов темы рассмотреть некоторые элементы численных методов.
Например, в рамках темы «решение систем линейных алгебраических уравнений», можно рассказать известный метод Гаусса, как численный метод, и предложить студентам запрограммировать рассмотренный на занятии алгоритм.
Ниже приводится фрагмент отчёта студента по теме «Методы решения систем линейных алгебраических уравнений»:
Рассмотрим применение метода Гаусса [2]:
'4x+2y-z=1 5x + 3y - 2 z = 2. 3x + 2y - 3z = 0
Листинг программы приведён на языке C++: int main(int argc, int argv[]){cout << "Решение матрицы методом Гауса:" << endl; int n;
cout << "Введите разрядность матрицы: "; cin >> n;
cout << "Введите значение элементов матрицы" << endl; double **a = new double *[n]; for (int i = 1; i <= n; i++)
a[i] = new double [n]; for (int i = 1; i <= n; i++){
cout << "Строка матрицы " << i << " -> "; for (int j = 1; j <= n; j++) cin >> a[i][j];} cout << "Введите матрицу b -> "; double *b = new double [n];
МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «ИННОВАЦИОННАЯ НАУКА» №11-2/2016 ISSN 2410-6070
for (int i = 1; i <= n; i++)
cin >> b[i]; for (int i = 1; i < n; i++){ if (a[i][i] == 0){ int l = i;
for (int m = i + 1; m <= n; m++)
if (fabs(a[m][i]) > fabs(a[l][i])) l = m;
if (l != i){for (int j = i; j <= n; j++){ double u = a[i][j]; a[i][j] = a[l][j]; a[l][j] = u;} double y = b[i];b[i] = b[l];b[l] = y;}}
double c;
for (int k = i + 1; k <= n; k++){c = a[k][i] / a[i][i]; a[k] [i] = 0;
for (int j = i + 1; j <= n; j++)
a[k][j] = a[k][j] - c * a[i][j]; b[k] = b[k] - c * b[i];}}
double s;
double *x = new double [n]; for (int i = 0; i <= n + 1; i++) x[i] = 0;
for (int i = n; i > 0; i -= 1){s = 0;
for (int j = i + 1; j <= n; j++) s = s + a[i][j] * x[j]; x[i] = (b[i] - s) / a[i][i];} cout << endl << "Ответ: "; for (int i = 1; i <= n; i++)
cout << "x" << i << " = " << x[i] << ", "; cout << endl; return 0;}
Пример работы программы:
Решение матрицы методом Гаусса: Введите разрядность матрицы: 3
Введите значение элементов матрицы: Строка матрицы 1: 4 2 -1 Строка матрицы 2: 5 3-2 Строка матрицы 3: 3 2-3 Введите матрицу Ь -> 1 2 О
Ответ: х1 = -1, х2 = 3, хЗ = 1,
При изучении темы «определённый интеграл» можно рассказать о численном вычислении определённого интеграла.
Ниже приводится фрагмент отчёта студента по теме «Определённый интеграл».
1
Будем вычислять определённый интеграл í sin xdxметодом Симпсона [1].
о
МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «ИННОВАЦИОННАЯ НАУКА» №11-2/2016 ISSN 2410-6070
Листинг программы приведён на языке C++:
double f(double x){
return sin(x);} int main(int argc, _TCHAR* argv[]) {double a, b, e; cout << "Введите требуемую точность решения: "; cin >> e;
cout << "Введите границу a интервала: "; cin >> a;
cout << "Введите границу b интервала: "; cin >> b;
double I2, Il = 0, n = 4, h = (b - a) / 4; int i = 0; do{ I2 = 0;
11 = I2;
h = h / 2; n = n * 2; do{i += 2;
double x2 = a + i*h, xl = x2 - h, x0 = xl - h; double y0 = f(x0), yl = f(xl), y2 = f(x2); double s = y0 + 4 * yl + y2; I2 += s;} while (i < n);
12 = I2 * h / 3;} while (fabs(Il - I2) < e);
cout << endl << "Заданная функция: " << "Sin(x)" << endl; cout << "Интервал от заданной функции: " << I2 << endl; return 0;}
Пример работы программы:
Введите требуемую точность решения: 0.0001 Введите границу а интервала: 0 Введите границу Ь интервала: 1
Заданная функция: 51п(х)
Интервал от заданной функции: 0.459695
Полученные навыки студенты смогут использовать при написании программ, решающих серьёзные технические задачи. Например, при антенном моделировании, где надо численно решить уравнения, как в
[3]:
ь Ь
Л K (я, у, и, у) J (и, + J (я, у) = / (я, у)
Список использованной литературы
1. Турчак Л.И., Плотников П.В., «Основы численных методов»,-М.: ФИЗМАТЛИТ, 304с. (2003)
2. Вержбицкий В.М., «Основы численых методов», -М.: Высшая школа, 840с. (2005)
3. Алашеева, Е.А., Маслов М.Ю. Сравнительная характеристика различных систем базисных функций полной области применительно к решению интегральных уравнений Фредгольма второго рода. Вестник СамГУ, 2012 ,№9, стр 14-20
© Алашеева Е.А., Гранкин А.М., 20l6
l45