Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2021, 10:57   #1
Ana45
Пользователь
 
Регистрация: 24.02.2021
Сообщений: 18
Вопрос Умножение матрицы на вектор, С++

Доброго времени суток!
Мне нужна ваша помощь, не могу понять где моя ошибка.
Вот условие задачи:
Дана квадратная матрица порядка n. Получить вектор Ab, где вектор b элементы которого вычисляются по формуле: bi=1.0/(i*i+2)
Вот моя программа:
Код:
# include<iostream>
# include<stdio.h>
# include<stdlib.h>
# include<ctime>
# include<math.h>
# include<iomanip>
# include<locale.h>
using namespace std;
double vector(int n,double **A,double *b)
{
    for(int i=0;i<n;i++)
    {
          double V=0;
          for(int j=0;j<n;j++)
               V+=A[i][j]*b[j];
          return V;
    }
}
int main()
{setlocale(LC_ALL,"Russian");
int const n=3;
srand(time(NULL));
int A[n][n],b[n];
cout<<"введите матрицу А"<<endl;
for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)cin>>A[i][j];
for(int i=0;i<n;i++)
{
    b[i]=1.0/(i*i+2);
}
cout<<"вектор b"<<endl;
double V;
V=vector Ab[n]);
cout<<"V="<<setprecision(8)<<V<<endl;
return 0;}
Помогите понять что здесь не так, пожалуйста!

Последний раз редактировалось Ana45; 16.05.2021 в 11:02.
Ana45 вне форума Ответить с цитированием
Старый 16.05.2021, 21:38   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Код:
# include <iostream>
# include <iomanip>

using namespace std;

void multiplyMatrixVector(int n, double **A, double *b, double *v)
{
    for (int i = 0; i < n; i++)
    {
        v[i] = 0;
        for (int j = 0; j < n; j++)
            v[i] += A[i][j] * b[j];
    }
}

int main()
{
    setlocale(LC_ALL, "Russian");
    int n;
    cout << "Введите N" << endl;
    cin >> n;
    double **A, *b, *v;
    A = new double* [n];
    b = new double [n];
    v = new double [n];
    cout << "Введите матрицу А" << endl;
    for (int i = 0; i < n; i++)
    {
        b[i] = 1.0 / (i * i + 2);
        A[i] = new double [n];
        for (int j = 0; j < n; j++)
            cin >> A[i][j];
    }
    multiplyMatrixVector(n, A, b, v);
    cout << "V = " << setprecision(8);
    for (int i = 0; i < n; i++)
        cout << v[i] << " ";
    for (int i = 0; i < n; i++)
        delete [] A[i];
    delete [] A;
    delete [] b;
    delete [] v;
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenShmem умножение матрицы на вектор Asia_ Помощь студентам 1 18.12.2016 12:25
умножение матрицы на вектор 13xxx Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 22:15
Умножение матрицы на вектор ciaonataha Общие вопросы C/C++ 1 28.04.2009 20:36
Умножение матрицы на вектор Илья Кибель Помощь студентам 5 27.10.2007 11:02