С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Virus0PS
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 9
#1

Метод вращений с построением КЮЭР-разложения - C++

06.11.2013, 17:11. Просмотров 446. Ответов 1
Метки нет (Все метки)

Я написал только Метод вращения
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
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
void f(double  *mass, double *bb, int n)
{
int i,j,k;
double a,b,c,s,t;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
b=mass[j*n+i];
a=mass[i*n+i];
c=a/sqrt(a*a+b*b);
s=b/sqrt(a*a+b*b);
for(k=i;k<n;k++)
{
t=mass[i*n+k];
mass[i*n+k]=c*mass[i*n+k]+s*mass[j*n+k];
mass[j*n+k]=-s*t+c*mass[j*n+k];
}
t=bb[i];
bb[i]=c*bb[i]+s*bb[j];
bb[j]=-s*t+c*bb[j];
}
}
for(i=n-1;i>=0;i--)
{
double summ=0.;
for(j=i+1;j<n;j++)
summ+=mass[i*n+j]*bb[j];
summ=bb[i]-summ;
bb[i]=summ/mass[i*n+i];
}
 
}
int main()
{
    int i=0,j,k,l,tt,n,key;
printf("amount:\n");
if(scanf("%d",&n)!=1)
{
    printf("error\n");return -1;
}
printf("key:\n");
if(scanf("%d",&key)!=1)
{
    printf("error\n");return -1;
}
srand(key);
double tmp,t, *mass=malloc(n*n*sizeof (double)),maxx;
double *bb=malloc(n*sizeof (double));
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
for(i=0;i<n;i++)
bb[i]=0.;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{tmp=rand();
tmp=(tmp>0.5?tmp:1.);
mass[i*n+j]=(rand()%2==0?1.:-1.)*rand()/tmp;
bb[i]+=mass[i*n+j];
}
if(n<30){printf("matrix A\n");
 
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%.2lf ",mass[i*n+j]);
printf("\n");}
printf("elements B\n");
 
for(j=0;j<n;j++)
printf("%.2e ",bb[j]);}
    t=clock();
    f(mass,bb,n);
t=clock()-t;
for(i=0,maxx=0.;i<n;i++)
{
    maxx=(fabs(bb[i]-1.)>maxx?bb[i]-1.:maxx);
}
printf("error=%e\n",maxx);
if(n<30){
printf("Solution\n");
for(i=0;i<n;i++)
printf("%.2lf ",bb[i]);}
printf("\nvremya rabot programmi %f sekund\n",t/CLOCKS_PER_SEC);
free(mass);
free(bb);
mass=0;
bb=0;
return 0;
}
помогите с построением -разложения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 17:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод вращений с построением КЮЭР-разложения (C++):

метод вращений - C++
нужно найти собственные значения и векторы: вот прога тока она кажется путает индесы элемента a_{ij} из-за этого не правильно считает,...

Метод вращений Якоби с++ - C++
Используя метод Якоби найти с точностью 0.0001 все собственные значения и векторы матрицы А: {1.953, 1.535, -3.220 , 0.826, 1.592 ,...

Рекурсивный метод, выводящий все возможные разложения натурального числа n на множители - C++
Разработать рекурсивный метод для вывода на экран всех возможных разложений натурального числа n на множители (без повторений). Например,...

КУЭР-разложение методом вращений - C++
Я программу создал через двухмерный массив работает #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #define _N 10 // число...

Решение СЛАУ методом вращений (Якоби) - C++
помогите, может у когото имеется приложение (на языке Pascal или C++), Решение СЛАУ методом вращений (Якоби). дали задание, уже...

совсем запуталась с построением( - C++
Составьте блок-схему алгоритма решения задачи, а также запишите словесно-пошаговый алгоритм (псевдокод): можно ли построить треугольник с...

1
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
06.11.2013, 17:28 #2
вот Вам класс матриц с QR) можете взять только метод оттуда, если поймете что и как там)
Критику в студию
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 17:28
Привет! Вот еще темы с ответами:

Сложности с построением многофайлового решения - C++
Есть 3-и класса. Каждый в файле. Не смотрите что реализация в h-ке, это просто чтобы было проще и удобнее понимать. Ошибка построения в...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя - C++
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Написать интерпретатор логических выражений с построением таблицы четверок и выполнить ее - C++
Написать интерпретатор логических выражений с построением таблицы четверок и выполнить ее. Считать, что выражения включают в себя только...

Написать три алгоритма решения СЛАУ: Метод прогонки, метод квадратных корней, метод вращений - C#
Начал писать курсовую. Нужно написать три алгоритма решения СЛАУ: прогонки, квадратных корней, вращений. С методом прогонки более менее...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.