Дана квадратная матрица A порядка n, и вектор b с n элементами. Получить вектор Ab, где b - вектор, элементы которого вычисляются по формуле bi=1/(i^2+2).
Можете обьяснить как этот вектор получить?
Получение вектора
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Там легко, например у нас вектор (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) - это искомый вектор.
Нам надо матрицу умножить на вектор, это будет выглядеть вот так:
(1*1+2*2+3*1, 4*1+5*2+6*1, 1*1+2*2+1*1)=(8,20,6) - это искомый вектор.

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пасибо! Как напишу прогу, выложу
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);
}
}
}
}
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);
}
}
}
}