Содержание
- 2. Задача погони Волк гонится за зайцем, который бежит по прямой с постоянной скоростью. Волк тоже бежит
- 3. Искусственный нейрон Одного искусственного нейрона достаточно, чтобы… …реализовать логическую функцию (AND, OR, NOT) …моделировать, например, поведение
- 4. DataGridView // ввод данных double[,] A, B, C; A = new double[K, L]; B = new
- 5. Баланс роста и веса Для таблицы значений роста (см) и веса (кг) пациентов вычислить функцию «вес
- 7. Скачать презентацию
Слайд 2Задача погони
Волк гонится за зайцем, который бежит по прямой с постоянной скоростью.
Задача погони
Волк гонится за зайцем, который бежит по прямой с постоянной скоростью.
// исходные данные: скорости uz и uv,
// положение волка yv, шаг времени dt
double gamma = Math.PI / 2;
double xz = 0, xv = 0, t = 0, L;
for (;; t = t + dt)
{
// вывод координат
...
xz = xz + dt * uz;
gamma = Math.Atan2(yv, xz - xv);
xv = xv + dt * uv * Math.Cos(gamma);
yv = yv - dt * uv * Math.Sin(gamma);
if (xv > xz)
break;
}
// вывод окончательных результатов
...
// вывод координат
L = Math.Sqrt(yv*yv + (xz-xv)*(xz-xv));
textBox1.Text = textBox1.Text +
String.Format("Волк({0:0}; {1:0})\t Заяц({2:0}; 0)\t L={3:0.0}\t угол={4:0.0}\r\n",
xv, yv, xz, L, 180*gamma/Math.PI);
// вывод окончательных результатов
textBox1.Text = textBox1.Text +
String.Format("\r\nL = {0:0.###}, t = {1:0.###}", L, t);
Слайд 3Искусственный нейрон
Одного искусственного нейрона достаточно, чтобы…
…реализовать логическую функцию (AND, OR, NOT)
…моделировать, например,
Искусственный нейрон
Одного искусственного нейрона достаточно, чтобы…
…реализовать логическую функцию (AND, OR, NOT)
…моделировать, например,
...обыграть человека в «Орёл/решку»!
public partial class Form1 : Form
{
int[] x, w;
int N = 8, win, loss, guess;
Random r = new Random();
private void button1_Click(object sender, EventArgs e)
{
int sum = 0;
for (int i = 0; i < N; i++)
sum += x[i] * w[i];
guess = (sum == 0)? r.Next(2): ((sum < 0)? 0: 1);
label2.Text = "Вы загадали " + guess + "?";
}
private void button_YES_Click(object sender, EventArgs e)
{
win++;
// обучение нейрона
...
}
private void button_NO_Click(object sender, EventArgs e)
{
loss++;
guess = (guess == 0) ? 1 : 0;
// обучение нейрона
...
}
}
// обучение нейрона
int sign = 2 * guess - 1;
for (int i = 0; i < N; i++)
w[i] += sign * x[i];
for (int i = 0; i > N-1; i++)
x[i] = x[i + 1];
x[N - 1] = sign;
Слайд 4DataGridView
// ввод данных
double[,] A, B, C;
A = new double[K,
DataGridView
// ввод данных
double[,] A, B, C;
A = new double[K,
B = new double[M, N];
C = new double[K, N];
for (int i = 0; i < K; i++)
for (int j = 0; j < L; j++)
A[i, j] = Convert.ToDouble(dataGridView1[j, i].Value);
for (int i = 0; i < M; i++)
for (int j = 0; j < N; j++)
B[i, j] = Convert.ToDouble(dataGridView2[j, i].Value);
// расчёт
for (int i = 0; i < K; i++)
for (int j = 0; j < N; j++)
{
double sum = 0;
for (int z = 0; z < L; z++)
sum = sum + A[i, z] * B[z, j];
C[i,j] = sum;
}
// вывод данных
for (int i = 0; i < K; i++)
for (int j = 0; j < N; j++)
dataGridView3[j, i].Value = C[i, j];
dataGridView1.RowCount = K;
dataGridView1.ColumnCount = L;
dataGridView2.RowCount = M;
dataGridView2.ColumnCount = N;
dataGridView3.RowCount = K;
dataGridView3.ColumnCount = N;
Слайд 5Баланс роста и веса
Для таблицы значений роста (см) и веса (кг) пациентов
Баланс роста и веса
Для таблицы значений роста (см) и веса (кг) пациентов
public partial class Form1 : Form
{
int N = 0;
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
N = (int)numericUpDown1.Value;
dataGridView1.RowCount = N;
for (int i = 0; i < N; i++)
{
dataGridView1[0, i].Value = i+1;
dataGridView1[0, i].ReadOnly = true;
dataGridView1[0, i].Style.BackColor = Color.LightGray;
dataGridView1[3, i].ReadOnly = true;
dataGridView1[3, i].Style.BackColor = Color.LightGray;
}
}
private void button1_Click(object sender, EventArgs e)
{
...
}
}
private void button1_Click(object sender, EventArgs e)
{
// ввод данных
double[] rost, ves, F;
rost = new double[N];
ves = new double[N];
F = new double[N];
for (int i = 0; i < N; i++)
{
rost[i] = Convert.ToDouble(dataGridView1[1, i].Value);
ves[i] = Convert.ToDouble(dataGridView1[2, i].Value);
}
// расчёт
for (int i = 0; i < N; i++)
F[i] = ves[i] - (rost[i] - 100);
// вывод данных
for (int i = 0; i < N; i++)
{
dataGridView1[3, i].Value = F[i];
if (Math.Abs(F[i]) > 20)
dataGridView1[3, i].Style.ForeColor = Color.Red;
}
}