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

Метод Крылова - C++

Восстановить пароль Регистрация
 
magasin
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 42
08.04.2014, 19:01     Метод Крылова #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
#include <iostream>
#include <math.h>
using namespace std;
void main()
{setlocale(LC_ALL,"");
int n,i,j,k,p,N;
double q,l,a,b,xs,xm,xn,xm1,xn1,eps=0.01;
cout<<"Введите размерность матрицы: ";
cin>>n;
cout<<"Введите матрицу: \n";
double **A1=new double*[n];
for(i=0;i<n;i++){
A1[i]=new double [n];
for(j=0;j<n;j++){
cin>>A1[i][j];}} 
double **A=new double*[n];
for(i=0;i<n;i++)A[i]=new double [n+1];
double **A2=new double*[n];
for(i=0;i<n;i++)A2[i]=new double [n+1];
double  *Y=new double [n];
N=1; 
if(N)
{cout<<"\nВведите произвольный ненулевой вектор: \n";
for(i=0;i<n;i++)cin>>Y[i];
for(k=0;k<=n;k++)
{
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)l+=Y[i]*A1[i][j];
if(k!=n)A[j][n-k-1]=l;
if(k==n)A[j][k]=l*(-1);
l=0;}
for(p=0;p<n;p++)Y[p]=A[p][n-k-1];}
int m=n;n=m+1;
for(i=0;i<n-1;i++){
for(j=0;j<n;j++){
A2[i][j]=A[i][j];}}
for(i=0;i<m;i++){
if(A[i][i]==0)
{cout<<"\nВведите другой ненулевой вектор\n";break;}
for(j=n-1;j>=i;j--){
A[i][j]/=A[i][i];}
for(k=i+1;k<m;k++){
l=A[k][i];
for(p=i;p<n;p++){
A[k][p]-=l*A[i][p];}}}
for(i=m-1;i>=0;i--){
Y[i]=A[i][n-1];
for(j=n-2;j>i;j--){
Y[i]-=A[i][j]*Y[j];}}
N=0;}
if(N==0){
cout<<"\nРезультат: \n";
cout<<"Л^"<<n-1;
for(i=0;i<n-1;i++){
if(Y[i]>=0)cout<<"+";
cout<<Y[i];
if(n-i-2>1)cout<<"*Л^"<<n-i-2;
if(n-i-2==1)cout<<"*Л";}cout<<"=0";
double xn=5.652;
double*X=new double [n-1];
for(i=0;i<n-1;i++){
q=1;
X[i]=A2[0][i];
for(j=1;j<n-1;j++){
q=xn*q+Y[j];
X[i]+=q*A2[j][i];}
cout<<"\n   "<<"X["<<i<<"]="<<X[i];}}
cout<<endl;
delete []Y;
delete []A;
delete []A1;
delete []A2;
system("pause");
}
Проблема в том, что прога неправильно считает коефициенты. Помогите исправить код.
Миниатюры
Метод Крылова  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 19:01     Метод Крылова
Посмотрите здесь:

C++ Метод итераций и метод Зейделя
Метод дихотомии (как метод оптимизации) C++
метод деления отрезка пополам и метод итерации C++
Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную C++
Метод Эйлера, и Метод Лагранжа, в долгу не останусь C++
Класс vector (поля: координаты, 2 конструктора, метод нахождения длины вектора и метод вывода координат на экран) C++
C++ Метод оптимизации. Метод Фибоначчи
C++ Как передать в метод класса Menu указатель на метод дочернего класса?

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

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

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