Форум программистов, компьютерный форум CyberForum.ru

Посчитать матрицу - C++

Восстановить пароль Регистрация
 
Sanginow
7 / 7 / 1
Регистрация: 24.04.2012
Сообщений: 26
03.03.2014, 17:45     Посчитать матрицу #1
Проблема в том что задали посчитать матрицу. Это матрица А =
37,7 20,4 18,2 41,0 42,7 36,6 50,1 33,2 27,2 26,1 33,4 46,6 40,7 36,0
42,8 36,8 33,0 54,2 47,7 39,1 51,9 20,7 31,6 50,8 49,2 40,8 37,1 28,6
37,1 39,8 40,1 24,1 29,7 31,6 35,4 27,8 42,6 36,1 53,2 49,2 47,1 44,4
42,6 34,4 39,4 47,2 54,0 41,7 41,9 30,2 37,2 53,0 29,5 42,2 44,0 31,7
27,4 26,0 29,5 42,7 42,7 30,1 39,5 37,0 29,6 26,7 39,2 43,3 49,6 43,2
40,1 43,2 45,0 49,4 24,0 36,4 42,7 26,2 29,8 42,0 50,1 33,1 37,2 40,4
24,8 36,8 41,1 44,3 33,2 37,6 40,1 27,2 31,6 37,2 29,7 38,7 32,4 31,2
42,7 50,0 41,8 47,9 52,1 54,9 30,8 21,7 20,4 26,2 24,1 28,7 36,2 41,6
29,5 37,1 31,7 47,9 53,8 42,9 40,4 41,2 42,3 31,3 27,2 36,4 52,0 27,9
33,7 39,8 42,5 40,5 28,3 20,7 41,1 33,3 37,0 24,3 24,4 44,9 45,3 45,4
37,3 50,1 49,4 48,6 46,1 41,2 36,1 40,2 27,8 37,2 44,3 26,6 31,2 38,2
52,7 44,8 42,0 41,9 50,0 42,9 29,9 37,2 36,6 44,7 51,0 39,1 37,2 21,3
49,4 53,0 44,1 29,6 24,9 39,2 33,5 42,1 43,7 51,2 47,8 32,7 22,1 38,9
31,6 21,9 42,5 28,8 30,2 41,6 35,8 42,7 30,6 37,2 51,8 47,8 37,6 29,5

и матрица В =
37,81428571 38,15 38,59285714 42,00714286 39,95714286 38,32142857 39,22857143 32,90714286 33,42857143 37,42857143 39,63571429 39,29285714 39,26428571 35,59285714

по вот такой формуле
C
1
2
3
4
5
6
    for (k = 1;k < N;k++){
      for (l = 1;l < N;l++){
          R[k][l] = ((A[k][l] - B[k])*(A[k][l] - B[l]))/13;
 
    }
    }
если все сделано правильно на диагонали будут числа
64,3043956 101,8826923 63,62686813 77,02071429 124,0903297 59,92796703 40,82527473 55,64379121 45,23758242 97,38835165 124,5501648 49,69456044 63,34401099 53,28071429


Написал вот, что а оно не считается. И еще требуется полученную матрицу записать в файл.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <vector>
#include <conio.h> 
#include <string.h> 
#include <io.h>
#include <fcntl.h>
#include <stdlib.h>
 
using namespace std;
 
 
    int SizeMatrix(){
    int i,j,k=0;
    double cc;
 
    char s='1';
    FILE *f;
    f=fopen ( "12345.txt", "r");
    while (!feof(f)){
        fscanf (f,"%f",&cc);
        fscanf (f,"%c",&s);
        k++;
        if (s=='\n'){break;}
    }
    return k;
}
 
void ReadMatrix (int N, double **A, double*B){
    int i,j;
    FILE *f;
    f=fopen ( "12345.txt", "r");
    for (i=0; i<N; i++){
        for (j=0; j<N; j++){
            fscanf (f,"%f ",&A[i][j]);
        }
    fscanf(f,"\n");
    }
    
    for (i=0; i<N; i++){
        fscanf (f,"%f ",&B[i]);
    }
            fclose(f);
}
  
 
void fff(int N,double *B , double **A, double **R)
{ 
    int k,l;
 
       
    for (k=1;k<N;k++){
      for (l=1;l<N;l++){
          R[k][l] = ((A[k][l] - B[k])*(A[k][l] - B[l]))/13;
 
    }
    }
}
int main(){
 
    int i,j,N;
 
     N = SizeMatrix();
 
    double **A; //Матрица А
    A = new double *[N];
    for (i=0; i<N; i++){
        A[i] = new double[N];
    }
    
    double **R; //Матрица R 
    R = new double *[N];
    for (i=0; i<N; i++){
        R[i] = new double[N];
    }
 
 
    double *B;//Матрица В
    B = new double [N];
 
    ReadMatrix ( N,A,B );
 
 
//fff(N,B,A,R);
    
 
 
    delete []B;
    
 
    for (i=0; i<N; i++){
         delete R[i];
    }
    
    for (i=0; i<N; i++){
         delete A[i];
    }
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2014, 17:45     Посчитать матрицу
Посмотрите здесь:

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали C++
C++ Записать матрицу в бинарный файл и посчитать среднее арифметическое её членов
Прочитать матрицу из файла и посчитать сумму элементов на главной диагонали C++
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Получить матрицу из чисел, заполняющих матрицу по линиям, параллельным главной диагонали C++
Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки C++
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
C++ Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х.

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru