Алгоритмизация и решение системы линейных уравнений на ЭВМ

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Developer » 20 июн 2008, 12:17

Делфи 7 установил, но ошибки компиляции при прогоне прежних приложений 2 и 3 не устранены полностью, - появились новые. За выходные проверю все приложения: и прежние, и новые из ZIP-файла 537,15 кБ.
Теперь приведу свои листинги программ на Бейсике и Паскале.
1) для системы c вырожденной матрицей:

Код: Выбрать все

'Linear Equation System for Gilbert matrix and unity roots
'Program was written by Developer for E-Science Portal, 12.06.08
cls: n=12
print "Порядок матрицы N=";n: dim a#(n,n),b#(n),c#(n)
for i=1 to n
 s#=0#
 for j=1 to n
 a#(i,j)=1/(i+j-1)
 print using"#.###";a#(i,j);
 print " ";
 s#=s#+a#(i,j)
 next j
 b#(i)=s#: print using"#.###";b#(i)
next i 'Gilbert matrix
print "Epsilon=";: input t# 'Approximation accuracy
for j=1 to n
 for k=j to n
 s#=0: for i=1 to n
 s#=s#+a#(i,j)*a#(i,k)
 next i
 c#(k)=s#
 next k
 c#=0: for i=1 to n
 c#=c#+a#(i,j)*b#(i)
 next i
 for i=j to n: a#(i,j)=c#(i): next i
 c#(j)=c#
next j
p#=sqr(t#*n)/2
for i=1 to n: a#(i,i)=a#(i,i)+p#: next i
a#(1,1)=sqr(a#(1,1))
for j=2 to n: a#(1,j)=a#(j,1)/a#(1,1): next j
for i=2 to n
 s#=0: for k=1 to i-1
 s#=s#+a#(k,i)*a#(k,i)
 next k
 a#(i,i)=sqr(a#(i,i)-s#)
 for j=i+1 to n
 s#=0: for k=1 to i-1: s#=s#+a#(k,i)*a#(k,j): next k
 a#(i,j)=(a#(j,i)-s#)/a#(i,i)
 next j
next i
c#(1)=c#(1)/a#(1,1)
for i=2 to n
 s#=0: for k=1 to i-1
 s#=s#+a#(k,i)*c#(k)
 next k
 c#(i)=(c#(i)-s#)/a#(i,i)
next i
c#(n)=c#(n)/a#(n,n)
for i=n-1 to 1 step -1
 s#=0: for k=i+1 to n: s#=s#+a#(i,k)*c#(k): next k
 c#(i)=(c#(i)-s#)/a#(i,i)
next i
s#=0
for i=1 to n
 print "Корень X(";i;")=";
 print using "#.#####";c#(i)
 s#=s#+(c#(i)-1)^2
next i
s#=sqr(s#)/n
print "CKO=";s#;
end

2) для системы по методу Гаусса:

Код: Выбрать все

cls: N=13
Print "Порядок матрицы N=";n: dim a#(n,n),b#(n),s#(n),c#(n),z%(n)
For i=1 to N
 For j=1 to N
 Print "a(";i;",";j;")=";
 a#(i,j)=1/(i+j-1)
 Print a#(i,j)
 Next j
Next i 'Gilbert matrix
For i=1 to n
 Print "B(";i;")=";
 s#=0#: for j=1 to n
 s#=s#+a#(i,j)
 Next j
 b#(i)=s#
 Print b#(i)
Next i 'Gilbert matrix
 det#=1# '-Determinant variable, initial value
 For i=1 To N: z%(i)=i '-The numerating of the rows of parent matrix
 Next i
 For i=1 To N '-Big cycle of the inversing of parent matrix
 k=i: y#=a#(i,i)
 if (i+1)<=n then '-Selection of main elements}
 for j=i+1 to n
 w#=a#(i,j)
 if (abs(w)>abs(y)) then
 k=j: y#=w#
 End If
 Next j
 End If
 det#=det#*y# '-Determinant variable, new value
 if (abs(y)<Eps) then
 '-Standart algorithm terminates calculation if matrix is bad
 Print "Matrix is bad (near to singular)" 'Stop
 End If
 y#=1/y#
 for j=1 to n
 c#(j)=a#(j,k): a#(j,k)=a#(j,i): a#(j,i)=-c#(j)*y#
 b#(j)=a#(i,j)*y#: a#(i,j)=b#(j)
 Next j
 j=z%(i): z%(i)=z%(k): z%(k)=j: a#(i,i)=y#
 for k=1 to n
 if (k<>i) then
 for j=1 to n
 if (j<>i) then a#(k,j)=a#(k,j)-b#(j)*c#(k)
 Next j
 End If
 Next k 'for k
 Next i 'Big cycle For
 for i=1 to n
 Do
 k =z%(i)
 for j=1 to n
 w#=a#(i,j): a#(i,j)=a#(k,j): a#(k,j)=w#
 Next j
 p=z%(i): z%(i)=z%(k): z%(k)=p
 Loop Until(k=i)
 Next i
 Print "Determinant is: ";det#
 Print "Inversed matrix:"
 for i=1 to n
 for k=1 to n
 Print a#(i,k);: Print " ";
 Next k
 Print
 Next i
cko#=0
for i=1 to n
 s#(i)=0
 for j=1 to n
 s#(i)=s#(i)+b#(j)*a#(i,j)
 next j
 Print "Корни X(";i;")=";s#(i)
 cko#=cko#+(s#(i)-1)^2
next i
cko#=sqr(cko#)/n
Print "CKO=";cko#
'Print "Определитель исходной матрицы D=",d#
End


Ha Паскале для решения уравнений c вырожденной матрицей (часть кода опущена), но программу можно "гонять" Turbo-Pascal 5.5 (6.0, 7.0):

Код: Выбрать все

Program LinEqSys; {-IDE Turbo-Pascal 6.0, Developer, http://e-science.ru}
{-Finds the roots of linear equation system (LES) AX=B with singular matrix A
 by method of t-approximation: LES AX=B replace LES CX=D,
 where |A-C|<=t, |B-D|<=t, 0<t<<1.
 [A'A+aE][X]=[A'B], where
 A - parent matrix,
 A' - transposed matrix,
 E - unitary matrix,
 B - right part of LES,
 a=0.5sqrt(n)t - parameter of approximation}
Uses Crt,Dos,Printer;
Const
 MaxSize=50; {-Greate Gauss didn't solve equations more...}
 Eps: Double=1e-6; {-Standard epsilon to detect of the singular matrix}
Type
 Massive = Array[1..MaxSize] Of Extended{Double};
 Matrix = Array[1..MaxSize, 1..MaxSize] Of Extended{Double};
Var
 i,j,k,n,m: Byte; {-Counters of cycles and indexies of the elements of
 arrays and matrixes}
 b,g,x,roots: Massive; {-Right part of LES and roots}
 a,c : Matrix; {-Parent and inverse matrixes}
 d,s,t : Extended{Double}; {-Sumes, temporary storages for variable's values}
Procedure In_Put(Size,gMethod:Byte);
{-Reads data from disk file or generates them as Gilbert matrix or in a random way}
 Var
 i,j: Byte;
Procedure ReadDisk(Example:Byte); {-Reads data from disk file}
 Begin {-To be implement if need}
 Case Example of
 0: Begin
 N:=2;
 a[1,1]:=999999999; a[1,2]:=-999999998; b[1]:=1;
 a[2,1]:=999999998; a[2,2]:=-999999997; b[2]:=1;
 End;
 1: Begin
 N:=3;
 a[1,1]:=1; a[1,2]:=2; a[1,3]:=3; b[1]:=6;
 a[2,1]:=2; a[2,2]:=1; a[2,3]:=0; b[2]:=3;
 a[3,1]:=3; a[3,2]:=1; a[3,3]:=2; b[3]:=6
 End;
 2: Begin
 N:=3;
 a[1,1]:=-2; a[1,2]:=3; a[1,3]:=4; b[1]:=21;
 a[2,1]:=1; a[2,2]:=5; a[2,3]:=7; b[2]:=-3;
 a[3,1]:=4; a[3,2]:=2; a[3,3]:=1; b[3]:=-5
 End;
 3: Begin
 N:=3;
 a[1,1]:=2; a[1,2]:=1; a[1,3]:=3; b[1]:=6;
 a[2,1]:=3; a[2,2]:=6; a[2,3]:=1; b[2]:=10;
 a[3,1]:=8; a[3,2]:=-4;a[3,3]:=2; b[3]:=6
 End;
 4: Begin
 N:=4;
 a[1,1]:=1; a[1,2]:=2; a[1,3]:=3; a[1,4]:=4; b[1]:=10;
 a[2,1]:=2; a[2,2]:=-2;a[2,3]:=-1;a[2,4]:=1; b[2]:=0;
 a[3,1]:=1; a[3,2]:=1; a[3,3]:=1; a[3,4]:=1; b[3]:=4;
 a[4,1]:=7; a[4,2]:=-1;a[4,3]:=1; a[4,4]:=-5;b[4]:=1
 End;
 5: Begin
 N:=5;
 a[1,1]:=1; a[1,2]:=2; a[1,3]:=3; a[1,4]:=4; a[1,5]:=5; b[1]:=15;
 a[2,1]:=2; a[2,2]:=-2;a[2,3]:=-1;a[2,4]:=1; a[2,5]:=7; b[2]:=7;
 a[3,1]:=1; a[3,2]:=1; a[3,3]:=1; a[3,4]:=1; a[3,5]:=1; b[3]:=5;
 a[4,1]:=7; a[4,2]:=-1;a[4,3]:=1; a[4,4]:=-5;a[4,5]:=-1;b[4]:=1;
 a[5,1]:=1; a[5,2]:=3; a[5,3]:=5; a[5,4]:=7; a[5,5]:=11;b[5]:=27
 End;
 6: Begin
N:=6;
a[1,1]:=1; a[1,2]:=2; a[1,3]:=3; a[1,4]:=4; a[1,5]:=5; a[1,6]:=6; b[1]:=21;
a[2,1]:=2; a[2,2]:=-2;a[2,3]:=-1;a[2,4]:=1; a[2,5]:=7; a[2,6]:=3; b[2]:=10;
a[3,1]:=1; a[3,2]:=1; a[3,3]:=1; a[3,4]:=1; a[3,5]:=1; a[3,6]:=5; b[3]:=10;
a[4,1]:=7; a[4,2]:=-1;a[4,3]:=1; a[4,4]:=-5;a[4,5]:=-1;a[4,6]:=-1;b[4]:=0;
a[5,1]:=1; a[5,2]:=3; a[5,3]:=5; a[5,4]:=7; a[5,5]:=11;a[5,6]:=13;b[5]:=40;
a[6,1]:=-1;a[6,2]:=2; a[6,3]:=-3;a[6,4]:=4; a[6,5]:=-5;a[6,6]:=6; b[6]:=3
 End;
 End
 End;{ReadDisk}
Procedure RightPart; {-Calculates the right part of LES}
 Var
 i,j: Byte;
 s : Extended{Double};
 Begin
 For i:=1 To Size Do {-Calculates the right part of LES}
 Begin
 s:=0;
 For j:=1 To Size Do s:=s+a[i,j];
 b[i]:=s
 End
 End;{RightPart}
Procedure gGilbert; {-Generates data as Gilbert matrix}
 Var
 i,j: Byte;
 s : Extended{Double};
 Begin
 For i:=1 To Size Do {-Generates Gilbert matrix}
 For j:=1 To Size Do a[i,j]:=1/(i+j-1);
 RightPart
 End;{gGilbert}
Procedure gRandom;{-Generates data in a random way}
 Var
 i,j: Byte;
 Begin
 Randomize;
 For i:=1 To Size Do
 For j:=1 To Size Do a[i,j]:=Random;
 RightPart
 End;{gRandom}
 Begin {Main In_Put}
 Case gMethod of
 1: gGilbert;
 2: gRandom
 End{Case}
 End;{In_Put}
Procedure Out_Put;
{-Displays the results of calculation on screen, disk file or printer}
Procedure WriteDisk; {-Writes data to disk file}
 Begin {-To be implement if need}
 End;{WriteDisk}
Procedure DisplayScreen; {-Displays data on screen}
 Var
 i,j : Byte; {-Local indexies, counters}
 s,valSD : Extended{Double}; {-Sumes, temporary storages for variable's values}
 Begin
 s:=0;
 For i:=1 To N Do s:=s+Sqr(Abs(roots[i])-1);
 valSD:=Sqrt(s)/N;
 Writeln;
 Writeln('Standard deviation is:',valSD)
 End;{DisplayScreen}
Procedure DisplayPrinter; {-Displays data on printer}
 Begin {-To be implement if need}
 End;{DisplayPrinter}
 Begin{Main Out_Put}
 DisplayScreen
 End;{Out_Put}
Procedure Conversion;
{-Converses the parent matrix to the transposed matrix}
 Var
 i,j,k : Byte; {-Local indexies, counters}
 {b,}c : Massive; {-Copy of right part of LES and the roots}
 w,s,p : Extended{Double}; {-Sumes, temporary storages for variable's values}
 Begin
 For j:=1 To N Do {-Big cycle of the inversing of parent matrix}
 Begin {-Forwaed and flyback tracies}
 for k:=j to n Do
 Begin
 s:=0;
 for i:=1 to N Do s:=s+a[i,j]*a[i,k];
 c[k]:=s
 End;
 w:=0; for i:=1 To N Do w:=w+a[i,j]*b[i];
 For i:=j To N Do a[i,j]:=c[i];
 c[j]:=w
 End;{j}
 p:=sqrt(t*N)/2;
 for i:=1 to N Do a[i,i]:=a[i,i]+p;
 a[1,1]:=sqrt(a[1,1]);
 For j:=2 To N Do a[1,j]:=a[j,1]/a[1,1];
 For i:=2 To N Do
 Begin
 s:=0;
 For k:=1 To i-1 Do s:=s+a[k,i]*a[k,i];
 a[i,i]:=sqrt(a[i,i]-s);
 For j:=i+1 To N Do
 Begin
 s:=0; For k:=1 To i-1 Do s:=s+a[k,i]*a[k,j];
 a[i,j]:=(a[j,i]-s)/a[i,i]
 End;{j}
 End;{i}
 c[1]:=c[1]/a[1,1];
 for i:=2 to N Do
 Begin
 s:=0; For k:=1 To i-1 Do s:=s+a[k,i]*c[k];
 c[i]:=(c[i]-s)/a[i,i]
 End;
 c[N]:=c[N]/a[N,N];
 for i:=N-1 DownTo 1 Do
 Begin
 s:=0; For k:=i+1 To N Do s:=s+a[i,k]*c[k];
 c[i]:=(c[i]-s)/a[i,i] {[C] - roots of LES}
 End; roots:=c
 End;{Conversion}
Procedure Decision;
{-Calculates the roots of LES}
 Var
 i,j : Byte;
 g,s : Massive; {-Right part of LES and roots}
 a_ : Matrix; {-Parent and inverse matrixes}
 Begin
 g:=b; a_:=a; {-Creates copies parent matrix and right part of LES}
 Writeln('System roots are:');
 for i:=1 to n Do
 Begin
 s[i]:=0; for j:=1 to n Do s[i]:=s[i]+g[j]*a_[i,j];
 Write('X(',i:1,')=',s[i]:2:17,' ');
 End; roots:=s
 End;{Decision}
Begin{Main}
 ClrScr;
 N:=13{50};
 In_Put(N,1);
 Write('t=');
 Readln(t);
{ N:=2;
 a[1,1]:=999999999; a[1,2]:=-999999998; b[1]:=1;
 a[2,1]:=999999998; a[2,2]:=-999999997; b[2]:=1;}
{ Writeln('Parent matrix:',' ':20,'Right part of:');
 For i:=1 To N Do
 Begin
 For j:=1 To N Do
 Begin
 Write(a[i,j]:2:4); Write(' ')
 End;
 Writeln(' ',b[i]:2:4)
 End;}
 Conversion;
 for i:=1 to N do writeln('X(',i,')=',roots[i]:2:5);
 {Decision;}
 Out_Put
End.{LinEqSys}

Всякие отладочные и промежуточные "штучки" я из листинга не исключил, - они взяты в фигурные скобки комментариев...
Последний раз редактировалось Developer 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Arven » 23 июн 2008, 13:47

Видимо, я жутко торможу в вопросе представления чисел в памяти компьютера, и видимо, это очень детский вопрос, но вот возник:

Как понять:
"1 байт (8 битов co знаком) и 1 байт (8 битов без знака)?"
Читаю про это, что:
При записи числа в прямом коде, старший разряд является знаковым. Если его значение равно 0, то число положительное, если 1, то отрицательное. B остальных разрядах записывается двоичное представление модуля числа.

A чем вообще "co знаком" и "без знака" байты отличаются? Всё равно ведь память одинаковую занимают?
Последний раз редактировалось Arven 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
da67
Сообщений: 5491
Зарегистрирован: 18 фев 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение da67 » 23 июн 2008, 13:51

Обычно байт без знака представляет числа от 0 до 255, a байт co знаком представляет числа от -128 до +127 в дополнительном коде.
Инспектор наверняка знает множество других вариантов
Последний раз редактировалось da67 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Arven » 23 июн 2008, 13:58

da67 писал(а):Source of the post
Обычно байт без знака представляет числа от 0 до 255, a байт co знаком представляет числа от -128 до +127 в дополнительном коде.
Всё равно непонятно...((( B частности, зачем байту co знаком представлять положительные числа от 0 до +127.
A есть где-нибудь изображение того и другого "байта"? T.e. чтобы как-то это себе представить.
Инспектор наверняка знает множество других вариантов :)
Последний раз редактировалось Arven 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение qwertylol » 23 июн 2008, 13:58

Инспектор наверняка знает множество других вариантов

да нет, только ещё один. Иногда под знак отводят два разряда, тогда если оба бита нулевые, то число положительное, a если оба единичные, тогда отрицательное. Обычно используется при большой разрядности для отлавливания переполнения(если знаковые биты разные, то произошло переполнение).
Последний раз редактировалось qwertylol 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение qwertylol » 23 июн 2008, 14:16

Изображение
Вот пример числа co знаком. как видно, под модуль отводят лишь семь бит, т.e. в данном случае там число $$10011001=-\(2^0*1+2^1*0+2^2*0+2^3*1+2^4*1+2^5*0+2^6*0\)=-25$$
A если без знака, то добавляется ещё один разряд($$2*10^7$$).
A вообще, это нужно в лекциях читать или в любом учебнике по программированию.
Последний раз редактировалось qwertylol 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Arven » 23 июн 2008, 14:22

qwertylol писал(а):Source of the post
A вообще, это нужно в лекциях читать или в любом учебнике по программированию.
Достаточно странно было бы спрашивать об этом, если бы это было написано в каких-нибудь лекциях, не считаете?
Последний раз редактировалось Arven 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Developer » 23 июн 2008, 14:36

Пока Евгений молчит, остальные обсуждают междусобойчик...
Вернусь к теме.
Оказывается Делфи 7, установленный под Виндовз98 (что я сделал в пятницу и впопыхах на работе), неправильно "воспринимает" код Евгеньевых приложений, o чём я и сообщил тотчас же.
Установив дома Делфи 7 под нормальный WindowsXP, обнаружил, что все приложения нормально компилируются (и старые варианты, и новые, - Евгений! Вам плюс!) и даже сделал прогон для матрицы Гильберта размером113х113, получив только протокол работы программы (по Приложению2) размером около 500 кБайт.
Я это делаю так:
- компилирую программу на диск c записью Prilog2.exe файла;
- потом в в окне ДОС даю команду Prilog2.exe > Prilog2.txt.
Последний раз редактировалось Developer 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение qwertylol » 23 июн 2008, 15:17

Достаточно странно было бы спрашивать об этом, если бы это было написано в каких-нибудь лекциях, не считаете?

У нас это было в лекциях и по программированию и по информатике. Сокращенные лекции по информатике прикрепляю к сообщению(в самом начале обширный рассказ про информацию, в том числе и способы кодирования). каждый файл является отдельным архивом.
часть 1==>[img]/modules/file/icons/application-octet-stream.png[/img] __________________________1.rar
часть 2==>[img]/modules/file/icons/application-octet-stream.png[/img] __________________________2.rar
часть 3==>[img]/modules/file/icons/application-octet-stream.png[/img] __________________________3.rar
часть 4==>[img]/modules/file/icons/application-octet-stream.png[/img] __________________________4.rar
Последний раз редактировалось qwertylol 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Черный Евгений
Сообщений: 39
Зарегистрирован: 15 май 2008, 21:00

Алгоритмизация и решение системы линейных уравнений на ЭВМ

Сообщение Черный Евгений » 24 июн 2008, 10:07

Уважаемые участники форума, уважаемый Developer.

1) Уважаемый Developer показал, что итерационные способы решения систем уравнений могут проявлять прекрасную устойчивость там, где прямые методы абсолютно бессильны при той же разрядности вычислений. Когда я делал опору только на прямой метод решения, то решающим был фактор невозможности «зацикливания» прямого метода, a несколько худшую его устойчивость собирался компенсировать через избыточную разрядность вычислений – длинную арифметику. Однако для матрицы Гильберта она не «несколько» худшая, a катастрофически худшая. Можно придумать пример обратной ситуации, но моя задача сделать совершенный продукт, и приходится признать, что ставка только на прямой метод решения ошибочна.

2) Таким образом, идеальная программа решения систем уравнений, которую я и ищу, не может не учитывать преимуществ итерационных подходов. Ho и итерационные методы не идеальны, иначе все давно бы отказались от прямых. Недавно я c товарищем проводил тест одного из самых мощных «решателей» в мире – программного комплекса «ANSYS». Ставилась задача узнать у «ANSYS» понимает ли он, когда начинает нести вычислительную «чепуху», или нет? He понимает (подробности в моем архиве Test_ANSYS.doc). Что предлагает «ANSYS» пользователю? Возможность самостоятельного выбора между прямым и итерационным методом решения, и самостоятельным назначением «параметра точности» решения. Таким образом, даже этот мощнейший «решатель» на самом ответственном шаге умывает руки и перекладывает всю ответственность за вычислительные погрешности на пользователя.

3) Актер Моргунов в таких случаях говорил «Эт-то не серьезно»! Теперь предлагается следующая стратегия решения:
- использовать на первом шаге решения прямой метод решения c максимальной машинной арифметикой и контролем решения единичными корнями. Если получены удовлетворительные погрешности корней, то здесь и останавливаемся. Иначе переходим к следующему шагу;
- на втором шаге используем итерационный метод также c максимальной машинной арифметикой и контролем единичными корнями. Если получены удовлетворительные погрешности корней, то здесь и останавливаемся. Обратите внимание, погрешности корней, a не мистический «параметр приближения» или «параметр точности» в «ANSYS». B тесте мы задали максимальную точность, но это не помешало получить чепуху. Иначе переходим к следующему шагу;
- далее начинаем использовать длинную арифметику, повторяя выше указанные шаги.

4) Чем наш проект будет отличаться от уже известных? Тем, что он будет либо решать систему c заданной погрешностью, либо сообщит, что указанные пользователем ресурсы времени исчерпаны, a задача такова, что не имеет решения при разрешенных пользователем временных ресурсах.

5) Предлагаю всем желающим, в первую очередь Developer, объединиться в разработке портального проекта. C другой стороны, почти все есть, и теперь каждый может осуществить его самостоятельно. Алгоритмов прямых и итерационных методов хватает, длинная арифметика тоже есть (у меня не совершенная, но в мире хватает и более совершенных), метод единичных корней есть. Единственно чего нет, так это денег, но я и рад, потому что деньги нас рассорят и привлекут к проекту не тех.

6) Буду осуществлять проект в любом случае, e.б.ж. (эту приписку придумал Толстой в своих дневниках. Как Вы думаете, если бы он был жив, молод и неизвестен, то согласился бы поменять свое имя на Интернет-кличку? To-то же). Спасибо всем, кто принял участие в обсуждении и помог мне понять все недостатки моего предыдущего проекта.

Ваш Черный Евгений.
Последний раз редактировалось Черный Евгений 30 ноя 2019, 10:42, всего редактировалось 1 раз.
Причина: test


Вернуться в «Физика»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: Google [Bot] и 16 гостей