Получение вектора

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
PastoriXx
Сообщения: 23
Зарегистрирован: 07 май 2010, 14:11

Дана квадратная матрица A порядка n, и вектор b с n элементами. Получить вектор Ab, где b - вектор, элементы которого вычисляются по формуле bi=1/(i^2+2).

Можете обьяснить как этот вектор получить?
Angel666
Сообщения: 40
Зарегистрирован: 17 май 2009, 23:51

Там легко, например у нас вектор (1,2,1) и матрица ((123),(456),(121))
Нам надо матрицу умножить на вектор, это будет выглядеть вот так:
(1*1+2*2+3*1, 4*1+5*2+6*1, 1*1+2*2+1*1)=(8,20,6) - это искомый вектор. :)
PastoriXx
Сообщения: 23
Зарегистрирован: 07 май 2010, 14:11

Angel666 писал(а):Там легко, например у нас вектор (1,2,1) и матрица ((123),(456),(121))
Нам надо матрицу умножить на вектор, это будет выглядеть вот так:
(1*1+2*2+3*1, 4*1+5*2+6*1, 1*1+2*2+1*1)=(8,20,6) - это искомый вектор. :)

Cпасибо! Как напишу прогу, выложу
PastoriXx
Сообщения: 23
Зарегистрирован: 07 май 2010, 14:11

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Семестровая_задача_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int N = 0;
double[] b;
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
N = (int)numericUpDown1.Value;
b = new double[N];
dataGridView2.RowCount = dataGridView3.RowCount = N;
dataGridView1.RowCount = dataGridView1.ColumnCount = N;

for (int i = 0; i < N; i++)
{
b = (double)1 / (i * i + 2);
dataGridView2[0, i].Value = (double)1 / (i * i + 2);
}
}

private void button1_Click_1(object sender, EventArgs e)
{
double[,] a = new double[N,N];
double[] ab = new double[N];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
a[i,j] = Convert.ToDouble(dataGridView1[i,j].Value);
}
}

for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
ab += (double)a[j,i] * b;
}
}

for (int i = 0; i < N; i++)
{
dataGridView3[0,i].Value = ab;
}
}

private void button2_Click(object sender, EventArgs e)
{
Random r;
r = new Random();
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
dataGridView1[j, i].Value = (double)r.Next(-100, 100);
}
}
}
}
Ответить