[Arşiv] Ticaretle ilgisi olmayan saf matematik, fizik, kimya vb. beyin jimnastiği bulmacaları - sayfa 557

 

Belirli bir birime dik bir vektör daha basit bir şekilde oluşturulabilir - xi koordinatlarından herhangi birini -sqrt(1-xi^2) ile değiştirmek yeterlidir. Bu aslında vektör uzayında i-inci eksenden 90 derecelik bir dönüşe eşdeğerdir (yani, kosinüsü -sinüs ile değiştiririz, açının kosinüsünü + pi / 2 elde ederiz). Bundan sonra, sadece sonucu normalleştirmek için kalır.

Ancak bu şekilde, kümenin geri kalanına normal olan bir vektör elde etmenin genellikle mümkün olduğu bir gerçek değildir. Diğer herhangi bir şekilde olduğu gibi, tüm seçeneklerden bir normal vektörü seçmek...

 
alsu :

Belirli bir birime dik bir vektör daha basit bir şekilde oluşturulabilir - xi koordinatlarından herhangi birini -sqrt(1-xi^2) ile değiştirmek yeterlidir. Bu aslında vektör uzayında i-inci eksenden 90 derecelik bir dönüşe eşdeğerdir (yani, kosinüsü -sinüs ile değiştiririz, açının kosinüsünü + pi / 2 elde ederiz). Bundan sonra, sadece sonucu normalleştirmek için kalır.

Ancak bu şekilde, kümenin geri kalanına normal olan bir vektör elde etmenin genellikle mümkün olduğu bir gerçek değildir. Diğer herhangi bir şekilde olduğu gibi, tüm seçeneklerden bir normal vektörü seçmek...

Aynen öyle. Genel olarak, öyle değil.

--

Görünüşe göre akıllı bir çözüm buldum. Algoritma konusunu yazmak için oturduğumda ve rahatladığımda, kendiliğinden ortaya çıktı.

Vopchem, x0 üzerindeki izdüşümünü oluşturulan x1r vektöründen çıkarmanız yeterlidir (yani x0*sp(x0,x1r), burada sp() skaler çarpımdır).

Kısacası formül tek satırda: x1 = x1r - x0*sp(x0,x1r);

:))

 
Kısacası formül tek satırda: x1 = x1r - x0*sp(x0,x1r);

:))

Evet. Sadece ondan sonra düzelt.

Neyse, tek satırda: x1 = norm(x1r - x0*sp(x0,x1r));

 
MetaDriver :

Düz bir fotoğrafta her şey yolunda gibi görünüyor. Bana öyle geliyor ki N-boyutlu durum için de işe yarayacak. Herhangi bir itiraz?

Bir senaryo yazmanın zamanı geldi gibi görünüyor, ama bir göz atın... :)

yazamayabilirsin. Kanıt:

sX = (a1+b1,a2+b2); dX = (a1-b1,a2-b2);

a ve b vektörleri birim olduğundan, karşılık gelen paralelkenar bir eşkenar dörtgendir ve köşegenleri diktir, yani toplam ve fark birbirine diktir. Bu nedenle modülleri değiştirmek, birini 90 derece sağa, diğerini sola döndürmeye eşdeğerdir. Kartezyen koordinatlarda, bunu basitçe birinci ve ikinci koordinatları değiştirerek ifade edebiliriz:

sXtr = (a2-b2,a1-b1); dXtr = (a2+b2,a1+b1)

=>

sXtr+dXtr = (2*a2,2*a1) modulo 2'ye sahip bir vektördür ve açıkçası (a1,a2) vektörüne, yani a vektörüne ortogonaldir. Ch.t.d.

 
Döngüde çalışmaya devam ediyor. for(i=0; i<InpVectorCount; i++) {....}
 
MetaDriver :
Döngüde çalışmaya devam ediyor. for(i=0; i<InpVectorCount; i++) {....}
Hayır, her neyse, her şey başlangıçta doğru "keyfi" vektörü seçmeye bağlı, bu da sonunda tüm kümeye diklik kazandıracak. Onlar. keyfi oldukça eşit ve keyfi değil. Yine istenen başlangıç vektörünün nasıl hesaplanacağına dönüyoruz.
 
alsu :
Hayır, her neyse, her şey başlangıçta doğru "keyfi" vektörü seçmeye bağlı, bu da sonunda tüm kümeye diklik kazandıracak. Onlar. keyfi oldukça eşit ve keyfi değil. Yine istenen başlangıç vektörünün nasıl hesaplanacağına dönüyoruz.
Saçmalık. Sadece her adımda kontrol eder. Herhangi bir dönüşüm adımında vektör, kümedeki bir sonraki ile eş yönlü hale gelirse, ilk rastgele vektörü yeniden oluşturur ve prosedürü tekrarlarız. Bu durum olası olmadığından (sonlu bir boyut için), doğrusal bir bağımlılıktan hemen şüphelenmekten (matrisin rankını arayın) daha kolaydır (daha ucuzdur).
 
MetaDriver :
Saçmalık. Sadece her adımda kontrol eder. Herhangi bir dönüşüm adımında vektör, kümedeki bir sonraki ile eş yönlü hale gelirse, ilk rastgele vektörü yeniden oluşturur ve prosedürü tekrarlarız. Bu durum olası olmadığından (sonlu bir boyut için), doğrusal bir bağımlılıktan hemen şüphelenmekten (matrisin rankını arayın) daha kolaydır (daha ucuzdur).
Eş yönlü olmayabilir, ancak vektörlerin tümüne veya bir kısmına eğik bir açıda olabilir.
 
MetaDriver :
Saçmalık. Sadece her adımda kontrol eder. Herhangi bir dönüşüm adımında vektör, kümedeki bir sonraki ile eş yönlü hale gelirse, ilk rastgele vektörü yeniden oluşturur ve prosedürü tekrarlarız. Bu durum olası olmadığından (sonlu bir boyut için), doğrusal bir bağımlılıktan hemen şüphelenmekten (matrisin rankını arayın) daha kolaydır (daha ucuzdur).
Ve daha ucuz çünkü skaler çarpım hala hesaplanmak zorunda (algoritmaya göre). Şimdi bire eşit çıkarsa başa dönerek işlemi tekrarlıyoruz. Onlar. her adımda sadece kontrol edin if(cp(a,b)! = 1.0) {}
 
Eğer vektör 1, vektör 2'ye dikse ve vektör 2, vektör 3'e dikse, o zaman vektör 1, 3 boyutlu uzayda bile, daha fazla boyuttan bahsetmeye gerek yok, vektör 3'e her zaman dik değildir.