Разминка мазохистам.

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Разминка мазохистам.

Сообщение Хакер » 27.11.2009 (Пт) 14:11

Желающим потратить своё время и ресурсы головы на благо общественности (в лице меня) предлагается позаниматься упрощением следующего выражения:

[врезка 28.11.09 01:26]
Изображение
[/врезка 28.11.09 01:26]


Код: Выделить всё
| / Zn + Yn^2/d      -Xn*Yn*d        Xn \     / r \      / r  \  |
| | -Xn*Yn*d         Zn + Xn^2/d     Yn |  *  | 0 |   -  | 0  |  |
| \ -Xn              -Yn             Zn /     \ 0 /      \ -h /  |
        (Это матрица 3X3)                   (вектор)    (вектор)

И при этом: d = (1 - Zn) / (Xn^2 + Yn^2)
(Поясню: это модуль вектора, полученного в результате разности произведения 3x3-матрицы на 3-вектор и 3-вектора)

При этом:
  • Xn = sin(P)*cos(A)
  • Yn = sin(P)*sin(A)
  • Zn = cos(P)
  • 0 <= P < pi/2 (или -pi/2 < P < pi/2)
  • A любое.
  • h и r константные, h > r или даже h > 2.5*r

Задача: Сделать так, чтобы в выражении было как можно меньше операций. В идеале: представить его в виде U(P)*V(A)*K, где U и V -- функции от P и A, а K --- константный коэффициент, зависящий от константных h и r.

Хинты:
  • Вместо r можно взять 1 (по сути, вынести r за знак модуля)
  • Можно брать векторы {0; r; 0} и {0, r, -h}, если вам это чем-то поможет
  • {Xn; Yn; Zn} --- единичный вектор
  • Главная диагональ матрицы содержит Zn плюс кое-что делить на d. Где кое-что: квадрт Yn, квадрат Xn и ноль, остальные элементы матрицы симметричны относительно главной диагонали с учётом перемены знака (кроме элементов 1-2 и 2-1, которые идентичны)

P.S. После этого топика чешутся руки прикрутить к форуму рендерилку математических записей.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Разминка мазохистам.

Сообщение Antonariy » 27.11.2009 (Пт) 15:08

После этого топика чешутся руки прикрутить к форуму рендерилку математических записей.

Делов-то :roll:
Только пришлось заурленкодить часть символов, а то у bb-парсера крыша едет.

Изображение
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Разминка мазохистам.

Сообщение iGrok » 27.11.2009 (Пт) 16:48

Antonariy писал(а):Делов-то :roll:

Поделить на d забыл. )

Изображение

Но с таким синтаксисом.. Я начинаю понимать парсер bb-кодов. У меня тоже поехала. )
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Разминка мазохистам.

Сообщение Денис » 27.11.2009 (Пт) 16:49

Супер!
Воистину, веб приходит в нашу жизнь, заменяя все больше оффлайновых программных пакетов веб-сервисами.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Разминка мазохистам.

Сообщение Roman Koff » 27.11.2009 (Пт) 17:11

Я за рендерилку, и исходники в студию! Я уже давно просил ;)
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Разминка мазохистам.

Сообщение Antonariy » 27.11.2009 (Пт) 17:45

Надо было просить у яндекса.
Лучший способ понять что-то самому — объяснить это другому.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Разминка мазохистам.

Сообщение Roman Koff » 27.11.2009 (Пт) 17:50

Дак хорошо бы под дотнет (эквейшин)
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Разминка мазохистам.

Сообщение Antonariy » 27.11.2009 (Пт) 17:53

Тык.
Кто займется переводом с php? :)
Лучший способ понять что-то самому — объяснить это другому.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Разминка мазохистам.

Сообщение ANDLL » 27.11.2009 (Пт) 18:36

Зачем? Почему нельзя сделать тэг который и будет формировать линк на соседний ресурс?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Разминка мазохистам.

Сообщение Хакер » 27.11.2009 (Пт) 19:04

Не отклоняемся от темы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Разминка мазохистам.

Сообщение Roman Koff » 27.11.2009 (Пт) 20:36

Поднимаю вопрос о переносе параллельного обсуждения сюда: viewtopic.php?p=6702910

Я точно покапаюсь с пхп, правда за результат не ручаюсь, т.к. у меня в отделе его недолюбливают, а я сам никогда не пробовал.
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Разминка мазохистам.

Сообщение Roman Koff » 27.11.2009 (Пт) 20:46

Хакер, а чиста для интереса, можно пояснить, для чего это?
Это уравнение термоядерного синтеза? На 3D вроде не похоже ...

Чиста с научной точки зрения ...
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Разминка мазохистам.

Сообщение Хакер » 27.11.2009 (Пт) 21:46

Представь себе треугольную правильную призму. Высота призмы h а расстояние от варшины до центра основания --- r. Изначально вектор нормали верхнего основания смотрит вертикально вверх.

Считай, что нижнее основанее жесткое и зафиксировано, верхнее тоже жесткое, но может вращаться вокруг своего центра, а боковые рёбра --- пружины.

На входе есть либо новый вектор нормали, либо сферические координаты (полярный и азимутальнй угол, те самые P и A). Нужно получить зависимость новой длины рёбер (они же у нас пружины, могут иметь любой нужную длину) от входных данных. То есть смысл в чём, можно просто тупо взять и посчитать, умножив матрицу вращения на три вектора. Но вычислять это будет весьма медленное устройство (не комп, микроконтроллер), и чем более тупое будет устройство, тем лучше (ибо дешевле). Таким образом, задача состоит в том, чтобы как можно больше упростить вычислительную задачу. Идеальный вариант (с представлением выражения в виде U(P)*V(A)*K) хорош тем, что функции U и V можно определить таблично, то есть зашить в EPROM с приемлемым шагом).

З.Ы. Вышеописанное: просто удобная модель. В действительности ни о каких пружинах речи нет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Разминка мазохистам.

Сообщение Roman Koff » 27.11.2009 (Пт) 22:32

Круто, в понедельник спрошу у наших эскабешников, они в математике и численных методах должны шарить, я за 10 лет все уже позабыл ...
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Разминка мазохистам.

Сообщение ANDLL » 27.11.2009 (Пт) 22:53

Эээ
Але народ нельзя матрицу такую помножить на столбец
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Разминка мазохистам.

Сообщение burik » 27.11.2009 (Пт) 23:18

ANDLL
Матрицу A на вектор X можно умножить если число столбцов матрицы A равно числу координат верктора X.
Тут три столбца и три координаты => можно
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Разминка мазохистам.

Сообщение ANDLL » 28.11.2009 (Сб) 0:11

Нельзя.
Есть правила произведения матриц, а вас, что, научили что еще есть особые правила для "произведение матрицы на столбец"?
Ну ладно. если так...
Будем считать что на месте умножения матрицы на столбец, видим умножение столбца на матрицу(надеюсь понятно что матричное произведение не коммутативно?)

Получится просто
A11*r - r
A12*r
A13*r-h
Где означенные A - первый стоблец матрицы

Ну а если под произведение матрицы на столбей имелось ввиду какоето особое явление, то дайте линк :lol:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Разминка мазохистам.

Сообщение Viper » 28.11.2009 (Сб) 11:15

Можно такое умножать. Можно умножать вектор-строку с числом элементов N (это будет число столбцов) на матрицу с числом строк N и числом столбцов M, получисм вектор-строку с числом элементов M. Можно как в нашем случае умножать матрицу с числом строк N и столбцов M на вектор-столбец с числом элементов (строк) N, получим вектор-столбец с числом элементов M.
В нашем случае - матрица 3×3. И вектор-столбец размером 3. Получим вектор-столбец размером 3.
З.Ы.
Первая попавшаяся ссылка в Гугле.
Весь мир матрица, а мы в нем потоки байтов!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Разминка мазохистам.

Сообщение ANDLL » 28.11.2009 (Сб) 12:19

Гм. Действительно. Надо же так лохануться :D
Ну вобщем все равно ведь получается
A11*r - r
A12*r
A13*r-h
, что по карйней мере позволяет избавится от кучи лишних элементов
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Разминка мазохистам.

Сообщение Хакер » 28.11.2009 (Сб) 14:43

ANDLL писал(а):Гм. Действительно. Надо же так лохануться :D
Ну вобщем все равно ведь получается
A11*r - r
A12*r
A13*r-h
, что по карйней мере позволяет избавится от кучи лишних элементов

Это если брать r-ку в качеств X-координаты. А можно в качестве Y. А можно вообще Математическая формула: \{r\sin\alpha; r\cos\alpha; -h\}, где Математическая формула: \alpha любой угол. Просто когда этот угол 90 или 0, считать проще.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Разминка мазохистам.

Сообщение Хакер » 29.11.2009 (Вс) 19:02

Ладно, перемножать матрицы и подставлять выраженные через сферические координаты координаты Математическая формула: x_n, Математическая формула: y_n и Математическая формула: z_n видимо всем лень, так что напишу, то что я раньше вывел.

Математическая формула: \begin{pmatrix}z_n + y_n^2d & -x_ny_nd & x_n \\ -x_ny_nd & z_n + x_n^2d & y_n \\ -x_n & -y_n & z_n\end{pmatrix}\begin{pmatrix}r\\0\\0\end{pmatrix}-\begin{pmatrix}r\\0\\-h\end{pmatrix} = r\begin{pmatrix}z_n+y_n^2d-1\\-x_ny_nd\\-x_n+\frac{h}{r}\end{pmatrix}

Математическая формула: d = \frac{1-z_n}{x_n^2 + y_n^2}

Теперь делаем замену Математическая формула: x_n на Математическая формула: \sin\theta\cos\varphi, Математическая формула: y_n на Математическая формула: \sin\theta\sin\varphi, Математическая формула: z_n на Математическая формула: \cos\theta:

Математическая формула: \nobreak{d = \frac{1-z_n}{x_n^2+y_n^2} = \frac{1 - \cos\theta}{\sin^2\theta\cos^2\varphi+\sin^2\theta\sin^2\varphi}=\frac{1-\cos\theta}{\sin^2\theta(\cos^2\varphi+\sin^2\varphi)}=\frac{1-\cos\theta}{\sin^2\theta}}

Можно и дальше: Математическая формула: \frac{1-\cos\theta}{\sin^2\theta} = \frac{1-\cos\theta}{1-\cos^2\theta} = \frac{1-\cos\theta}{(1-\cos\theta)(1+\cos\theta)} = \frac{1}{1+\cos\theta}


Математическая формула: \nobreak{r\begin{pmatrix}z_n+y_n^2d-1\\-x_ny_nd\\-x_n+\frac{h}{r}\end{pmatrix} = r\begin{pmatrix}\cos\theta + \frac{\sin^2\theta\sin^2\varphi}{1+\cos\theta}-1\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}=r\begin{pmatrix}\frac{\cos\theta + \cos^2\theta + \sin^2\theta\sin^2\varphi-\cos\theta - 1}{1+\cos\theta}\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}=r\begin{pmatrix}\frac{\sin^2\theta\sin^2\varphi - (1-\cos^2\theta)}{1+\cos\theta}\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}}=
Математическая формула: =r\begin{pmatrix}\frac{\sin^2\theta(\sin^2\varphi - 1)}{1+\cos\theta}\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}}=r\begin{pmatrix}-\frac{\sin^2\theta\cos^2\varphi}{1+\cos\theta}\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}}

Теперь, используя тождество Математическая формула: \frac{1}{1+\cos\theta} = \frac{1-\cos\theta}{\sin^2\theta}, продолжаем:
Математическая формула: r\begin{pmatrix}-\frac{\sin^2\theta\cos^2\varphi}{1+\cos\theta}\\-\frac{\sin^2\theta\cos\varphi\sin\varphi}{1+\cos\theta}\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}}=r\begin{pmatrix}(\cos\theta-1)\cos\varphi\cos\varphi\\(\cos\theta-1)\cos\varphi\sin\varphi\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}

Теперь сам модуль:
Математическая формула: \left|r\begin{pmatrix}(\cos\theta-1)\cos\varphi\cos\varphi\\(\cos\theta-1)\cos\varphi\sin\varphi\\-\sin\theta\cos\varphi+\frac{h}{r}\end{pmatrix}\right| =\sqrt{(r(\cos\theta-1)\cos\varphi\cos\varphi)^2+(r(\cos\theta-1)\cos\varphi\sin\varphi)^2+(h - r\sin\theta\cos\varphi)^2}=

Математическая формула: =\sqrt{r^2(\cos\theta-1)^2\cos^2\varphi(\cos^2\varphi+\sin^2\varphi)+(h-r\sin\theta\cos\varphi)^2}=\break=\sqrt{r^2(\cos^2\theta - 2\cos\theta+1)\cos^2\varphi+h^2 - 2hr\sin\theta\cos\varphi + r^2\sin^2\theta\cos^2\varphi}

И как бы это совсем не то выражение, о котором я мечтаю. Ну что, желающие в зале есть? :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Разминка мазохистам.

Сообщение Хакер » 29.11.2009 (Вс) 21:40

Дальше: группируем под корнем первое и последнее слагаемое:
Математическая формула: \sqrt{r^2(\cos^2\theta - 2\cos\theta+1)\cos^2\varphi+h^2 - 2hr\sin\theta\cos\varphi + r^2\sin^2\theta\cos^2\varphi}=\break=\sqrt{r^2\cos^2\varphi(\cos^2\theta-2\cos\theta+1+\sin^2\theta)+h^2-2hr\sin\theta\cos\varphi}=\sqrt{2r^2\cos^2\varphi(1-\cos\theta)-2hr\sin\theta\cos\varphi+h^2}

Если бы формула Математическая формула: \sin^2\alpha=\frac{1-\cos2\alpha}{2} не содержала бы противной двойки в косинусе, всё было бы красиво: скобку Математическая формула: (1-\cos\theta) мы бы заменили на Математическая формула: 2\sin^2\theta, выражение под корнем бы стало раскрытым квадратом Математическая формула: (2r\cos\varphi\sin\theta-h)^2, корень из которого равнялся бы Математическая формула: \left|2r\cos\varphi\sin\theta-h\right|. Но, к сожалению, красиво и легко поступить не судьба.

P.S. Хотя нет, полный квадрат не получился бы, ещё двойка нужна в средний член.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Разминка мазохистам.

Сообщение Antonariy » 02.12.2009 (Ср) 13:15

Офф:
Заметил новою кнопочку math, хочу предложить для нее логичное дополнение — визуальный редактор на php (с моим переводом на asp, если кому нужно).
Вложения
cc_equationeditor.rar
(259.25 Кб) Скачиваний: 147
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList