[아카이브] 순수수학, 물리학, 화학 등 : 거래와 무관한 두뇌 트레이닝 퍼즐 - 페이지 561

 

자, 자.

 
직교 집합을 구성하는 일종의 표준 절차가 있습니다. 라그랑주 아니면 다른 사람. 글쎄, 당신이 문제를 해결하고 그것을 증명했다면, 우리는 무엇에 대해 이야기하고 있습니까 ...
 
Mathemat :
직교 집합을 구성하는 일종의 표준 절차가 있습니다. 라그랑주 아니면 다른 사람. 글쎄, 당신이 문제를 해결하고 그것을 증명했다면, 우리는 무엇에 대해 이야기하고 있습니까 ...

노노!!! 있다면, 그것을 게시하자! 매우 흥미롭습니다. 찾지 못했습니다.

목표 문제를 해결하는 속도에 영향을 줄 수 있기 때문에 다양한 방식에 관심이 있습니다.

 
tara :

논리적으로. 우리는 어떻게 돈을 벌 것인가?

외환!
 
MetaDriver : !!! 있다면 - 퍼트리자! 매우 흥미롭습니다. 찾지 못했습니다.

글쎄, 나는 아직 그것에 대해 깊이 파고 들지 않았습니다. 그람-슈미트 과정 은 선형 대수학에서 진행되는 것 같습니다. 또는 이차 형태로.

내가 이해하는 한 첫 번째 단계가 아니라 시작하는 것으로 충분합니다. 증거와 기하학적 해석이 있습니다.

OpenCL 기능에 이 프로세스에 대한 고유한 것이 있어야 한다는 의심이 듭니다.

 

순차적 직교화 방법은 아래 코드 스니펫에서 볼 수 있습니다. 기울기는 기저 벡터에 대한 투영이 제거되는 임의의 벡터입니다. 기저는 1차원 배열 Sarray 에 있습니다. 모든 배열은 전역으로 선언됩니다. 그 과정은 댓글에서 분명하다고 생각합니다.

 //+------------------------------------------------------------------+
//|  в массиве Sarray записан ортонормированный базис из k векторов  |
//|  размерности NeuroCellDim каждый                                 |
//|  строится ортогональная проекция вектора Gradient на базис       |
//|  в случае успеха проекция нормируется                            |
//|  и добавляется в базис, если позволяет признак записи: write > 0 |
//+------------------------------------------------------------------+
int OrthogonalProjection( int k, int write)
{
   int    i, j, err = 0 , index = 0 ;
   double Alpha;
   if (k > 0 ) // если k>0, то базис не пуст
       for (i = 0 ; i < k; i++)
      {
         for (j = 0 ; j < NeuroCellDim; j++)
         {
            InputX[j] = Sarray[index]; // извлекаем i-й орт в InputX
            index++;
         }
         Alpha = ScalarProduct( Gradient, InputX); // скалярное произведение, cos(Gradient, InputX)
         if (Alpha > 1.0 - delta)   // если cos() = 1
         {
            err = - 1 ; // считаем, что такой вектор линейно зависим от векторов базиса
             break ;
         }
//       Gradient := Gradient - Alpha * InputX     с нормировкой       
         AddVektors( Gradient, InputX, -Alpha); // орт к базису из i+1 векторов
      }

   if (err >= 0 && write > 0 ) // если существует проекция и позволяет признак записи
       for (j = 0 ; j < NeuroCellDim; j++)   // записываем новый орт в базис
      {
         Sarray[index] = Gradient[j]; 
         index++;
      }      

   return (err);
}
//+--- OrthogonalProjection End -------------------------------------+
 

사람들이여, 말해 주십시오. 나는 길을 잃었다. 작업은 다음과 같습니다. 선형 회귀에 의해 매우 잘 근사된 데이터 샘플이 있습니다(독립 변수는 샘플 번호임).

그래프는 선형 회귀 방정식을 보여줍니다. 샘플 불변이 되도록 샘플의 데이터를 변환하고 싶습니다. 산술 연산을 사용하여 방정식의 자유 항을 선택하고 샘플의 데이터를 이 값으로 가져오려고 했습니다. 그러나 처음에는 원하는 수준의 점근선으로 가는 0.7, 0.46 등의 수준에서 이러한 피크가 있었습니다. 이 정점은 태초에 어디에서 왔습니까? 수식을 변경하여 제거할 수 있습니까?

만일을 대비하여 엑셀을 첨부합니다.

파일:
 
alexeymosc :

사람들이여, 말해 주십시오. 나는 길을 잃었다. 작업은 다음과 같습니다. 선형 회귀에 의해 매우 잘 근사된 데이터 샘플이 있습니다(독립 변수는 샘플 번호임).

그래프는 선형 회귀 방정식을 보여줍니다. 샘플 불변이 되도록 샘플의 데이터를 변환하고 싶습니다. 산술 연산을 사용하여 방정식의 자유 항을 선택하고 샘플의 데이터를 이 값으로 가져오려고 했습니다. 그러나 처음에는 원하는 수준의 점근선으로 가는 0.7, 0.46 등의 수준에서 이러한 피크가 있었습니다. 이 정점은 태초에 어디에서 왔습니까? 수식을 변경하여 제거할 수 있습니까?

만일을 대비하여 엑셀을 첨부합니다.

글쎄, 다른 솔루션이 없다면 솔루션을 검색하여 방정식의 자유 항의 값을 선택하고 R ^ 2를 이미 새로운 시리즈(원본에서 파생되고 불변이어야 함)로 최소화했습니다. 즉, 거의 선형으로 만들었습니다. 분명히 문제는 원본 데이터가 완벽하게 선형이 아니라는 것입니다...
 
alexeymosc :

사람들이여, 말해 주십시오. 나는 길을 잃었다. 작업은 다음과 같습니다. 선형 회귀에 의해 매우 잘 근사된 데이터 샘플이 있습니다(독립 변수는 샘플 번호임).

그래프는 선형 회귀 방정식을 보여줍니다. 샘플 불변이 되도록 샘플의 데이터를 변환하고 싶습니다. 산술 연산을 사용하여 방정식의 자유 항을 선택하고 샘플의 데이터를 이 값으로 가져오려고 했습니다. 그러나 처음에는 원하는 수준의 점근선으로 가는 0.7, 0.46 등의 수준에서 이러한 피크가 있었습니다. 이 정점은 태초에 어디에서 왔습니까? 수식을 변경하여 제거할 수 있습니까?

만일을 대비하여 엑셀을 첨부합니다.

음, 이것은 단지 한 가지를 의미합니다. 상대 근사 오류가 더 크고 X(및 Y)가 더 작습니다. 사실, 작은 숫자를 다른 작은 숫자로 나눌 때 무엇을 기대했습니까? 변수 X' = X+100을 대체하고 0에서 300이 아닌 100에서 400 범위에서 새 시리즈를 작성하십시오. 그래프가 훨씬 더 직선적이지만 문제의 본질은 바뀌지 않습니다.
 

1.

Mislaid 03/10/2012 05:46 AM 순차 직교화 방법은 아래 코드 조각에서 볼 수 있습니다. 기울기는 임의 벡터입니다.

수학 :

1. 글쎄, 나는 아직 그것에 대해 깊이 파고 들지 않았습니다. 그람-슈미트 과정 은 선형 대수학에서 진행되는 것 같습니다. 또는 이차 형태로.

내가 이해하는 한 첫 번째 단계가 아니라 시작하는 것으로 충분합니다. 증거와 기하학적 해석이 있습니다.

2. OpenCL 함수에서 이 프로세스에 대한 고유한 것이 있어야 한다는 의심이 있습니다.

1. 1. Mislaid, 수학,

그리고 여기저기서 똑같은 일 - 내가 어제 디자인한 똑같은 과정. 이전 벡터에 대한 벡터 투영의 순차 빼기.

요즘은 클래식한 느낌이 들어요.... :-))

--

그건 그렇고 밤에 테스트 스크립트를 실행하고 디버깅했습니다. 그러던 중 Pyatyora 옵티마이저에서 버그를 발견하여 서비스 데스크로 보냈습니다. 코드를 약간 변경하여 버그를 우회했습니다. 그래서 모든 것이 작동합니다. 내가 필요로 하는 만큼 빠르고 안정적입니다.

2. openCL에는 실제로 있지만 3차원 경우에만 해당됩니다. [교차(a,b); 주어진 2에 직교하는 벡터를 생성합니다. ] 그리고 임의의 차원에 대해 필요합니다.