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

Исправить программу на собственные значения и им соответствующие вектора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать класс Account, представляющий собой банковский счет http://www.cyberforum.ru/cpp-beginners/thread1130432.html
В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется операцией инициализации. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, получить сумму прописью. #include...
C++ Есть пирог. Игроки по очереди выбирают какую-либо клетку пирога. Определить проигравшего Пирог.Имеетсяпрямоугольныйпирог,разрезанныйнаm×nчастей (клеток),причем,леваянижняяклеткапирогаотравлена.Игроки по очередивыбираюткакую-нибудьклеткупирогаи «съедают»еевместесовсемиклетками,расположеннымиправееивыше выбранной. Проигрывает тот, кто съедает отравленную клетку. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <locale.h> #include <iostream> int _tmain(int... http://www.cyberforum.ru/cpp-beginners/thread1130423.html
C++ Упорядочить и вывести строки в порядке возрастания значения их длинны
Помогите сделать более простым методом и что бы можно было сделать ввод через аргументы командной строки,т.к. как переделать именно в этом коде(см. ниже) не знаю... #include <iostream> #include <iterator> #include <algorithm> #include <string> #include <vector> using namespace std;
Наследование, так ли это C++
Вообщем вот какой вопрос. 1). Первый вариант. struct T { private: int f; int g; };
C++ Вычислить значения функции F на интервале от начального значения до конечного значения http://www.cyberforum.ru/cpp-beginners/thread1130379.html
Написать консольное приложение на С++ Перепечатайте пожалуйста текст задания на форум.
C++ Файлы и структуры. Поиск студента по имени и сортировка Помогите с программой пожалуйста. #include <iostream> #include <fstream> using namespace std; struct STUDENT {char familia; char name; int vozrast; int rayting; char pol;} подробнее

Показать сообщение отдельно
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
27.03.2014, 18:46     Исправить программу на собственные значения и им соответствующие вектора
Ребята вот смотрите: программа в принципе работает правильно (считает собственное значение L верно), НО собственный вектор матрицы, а именно то что находится по правую часть от матрицы А на картинке не верно. Помогите разобраться че к чему, может эпсилон не тот или еще что-нибудь???

Тестовый пример:

Матрица А:
4 2 2
2 5 1
2 1 6

Матрица x1 (вот это после равно справа от матрицы неверное считает):
0,8077c1
0,7720c1
c1

Ответ:
L1=8,3874

КОД ПРОГИ:
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
#include "stdafx.h"
#include "cmath"
#include "iostream"
#include "locale.h"
using namespace std;
 
void Input(int n,int A[][100])
{
    int i,j;
    for (i=0;i<n;i++)
        for (j=0;j<n;j++){
            std::cout << "Введите A[" << i << "][" << j << "]: ";
            std::cin >> A[i][j];
        }
}
 
void Matr(int A[][100],int n)
{
    float w0[100],w[100],summ=0,w0norm[100],e,d,d0;
    int i,j,k;
    w0[0]=1;
    for (i=1;i<n;i++)
        w0[i]=0;    
    do
    {
        for (i=0;i<n;i++)
            summ=summ+w0[i]*w0[i];
        d0=sqrt(summ);
        for (i=0;i<n;i++)
            w0norm[i]=w0[i]/d0;
        for (i=0;i<n;i++)
        {
            w[i]=0;
            for (j=0;j<n;j++)
                w[i]=w[i]+A[i][j]*w0norm[j];
        }
        summ=0;
        for (i=0;i<n;i++)
            summ=summ+w[i]*w[i];
        d=sqrt(summ);
        e=fabs(d-d0);
        for (i=0;i<n;i++)
            w0[i]=w[i];
        summ=0;
    } while(e>0.001);
    std::cout << "\nМатрица А:\n";
    for (i=0;i<n;i++){
        for (j=0;j<n;j++)
            std::cout << A[i][j] << " ";
        std::cout  << " = " << w0norm[i] << std::endl;
    }
    std::cout << "\nL = " << d << std::endl;  
}
 
int main()
{
    int n,A[100][100];
    setlocale(LC_ALL, "rus");
    std::cout << "Введите размерность квадратной матрицы = ";
    std::cin >> n;
    Input(n,A);
    Matr(A,n);
    
    std::cin.get();
    std::cin.get();
    return 0;
}
Добавлено через 1 час 9 минут
ребята подскажете?

Добавлено через 22 часа 27 минут
помогите пожалуйста

Добавлено через 1 час 51 минуту
великие программисты вы гдее?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru