Pull to refresh
232
-0.6
Дмитрий Притыкин @maisvendoo

Пользователь

Send message
Насколько я понял, уязвимости, описанные в статье возникают в том числе из-за небезопасного использования C-функций работы со строками. PVS Studio анализирует код на предмет таких проблем.

P.S.: Почитав такую информацию, прихожу к выводу, что покупая роутер лучше брать модель допускающую перешивку открытым ПО… Что собственно и делаю
OpenWRT легко проверить, ибо код открыт. Кстати, хорошая тема для ребят, ведущих блог о PSV Studio
Можно оффтопный вопрос — какой отладчик изображен на скринах? А то, к стыду своему, не признаю этих окошек, но судя по шрифтам и именованию меток это встроенный в IDA Pro?
грустная история экономической неудачи Спейс Шаттла

Шаттл создавался с главной целью — обслуживание платформ системы СОИ. Ибо из всех ТКС он обладает уникальным свойством — может не только доставить ПН на орбиту но и снять её оттуда. На практике это выполняли всего-то пару раз, а бесперспективность первоначальных замыслов по СОИ нивелировали уникальность данной ТКС. Но ведь деньги были потрачены, ТКС создана, поэтому она эксплуатировалась более четверти века.

Что ни говори, но приоритет в космических программах расставляется военными и политиками (как было в случае с Луной). А уже потом речь идет о науке
А не такой ли микроавтобус был у Джобса? Который он продал чтобы организовать гаражное производство Apple I
Mathematica превосходит Maple практически во всем

Я не стал бы судить категорично, но обратить внимание на Mathematica меня заставила такая задача

При получении уравнений Лагранжа 2-го рода приходится брать частную производную кинетической энергии по производной от обобщенной координаты и по самой обобщенной координате. А она в свою очередь — функция времени. При реализации этой задачи на Maple приходится вводить замену — ну не умеет он дифференцировать функцию по параметру, который сам является функцией. А Mathematica позволяет сделать вот так

LagrangeEQs[T_, q_, r_, F_]:= Module[{ret=Range[Length[q]]},
    For[i = 1, i <= Length[q], i++,
        ret[[i]] = D[D[T, D[q[[i]], t]], t] - D[T, q[[i]]] == Sum[F[[k]].D[r[[k]], q[[i]]], {k, 1, Length[F]}]
    ];
    ret
]

тут T — выражение кинетической энергии; q — вектор обобщенных координат

и сразу получить аналитическое выражение уравнений движения в довольно компактном виде.

аналогичная функция в Maple выглядит так
LagrangeEQs := proc(T, q, r, F)

 local s := numelems(q);
 local n := numelems(rk);
 local i, k;
 local T1, dT1dv;
 local dTdv, dTdvdt;
 local T2, dT2dq;
 local dTdq;
 local left_part;
 local Q;
 local summa;
 local r1, dr1dq, drdq;

 # Получение левой части уравнений движения
 for i from 1 to s do
  
  # Дифференцируем кинетическую энергию по обобщенным скоростям и времени
  T1[i] := subs(diff(q[i], t) = v[i], T);
  dT1dv[i] := diff(T1[i], v[i]);
  dTdv[i] := subs(v[i] = diff(q[i], t), dT1dv[i]);
  dTdvdt[i] := diff(dTdv[i], t);

  # Дифференцируем кинетическую энергию по обобщенным координатам
  T2[i] := subs(q[i] = q1[i], T);
  dT2dq[i] := diff(T2[i], q1[i]);
  dTdq[i] := subs(q1[i] = q[i], dT2dq[i]);
  
  # Формируем левую часть уравнения движения
  left_part[i] := expand(simplify(dTdvdt[i] - dTdq[i]));
 end do;

 VectorCalculus[BasisFormat](false);

 # Вычисляем обобщенные силы (правая часть уравнений движения)
 for i from 1 to s do
  summa := 0;
  for k from 1 to n do

   # Дифференцируем радиус-ректор точки приложения k-й силы по i-й обобщенной координате
   r1[k] := subs(q[i] = q1[i], r[k]);
   dr1dq[k] := VectorCalculus[diff](r1[k], q1[i]);
   drdq[k] := subs(q1[i] = q[i], dr1dq[k]);
   
   # Скалярно перемножаем вектор силы на производную от радиус-вектора по обобщенной координате 
   # и накапливаем результат
   summa := summa + LinearAlgebra:-DotProduct(F[k], drdq[k], conjugate = false); 
  end do;

  Q[i] := expand(simplify(summa));
 end do;

 # Окончательно формируем уравнения и возвращаем результатq
 return {seq(left_part[i] = Q[i], i=1..s)};

end proc:
Да, параметры положительны. При отрицательных величинах ход «ручного» решения другой. Внесу коррективу в статью, спасибо за полезное замечание.

P.S.: Функцию Reduce возьму на вооружение. Честно говоря, с Mathematica только начал знакомится, но по первым ощущениям она во многом затыкает Maple за пояс
Пардон, спутал знак, так что вторая картинка в посте выше выглядит так



Собственно ошибки здесь не вижу
Только что получил решение без СКА вручную

Решение задачи из статьи




Получилось то же самое. Решение проверено мной многократно уже.

Был бы признателен, если бы мне указали на ошибку
Я выношу за корень, заранее зная, что углы не могут быть такими, что синус получится меньше нуля. Поэтому из под корня выносится положительное число
Возможно maisvendoo допустил какие-то ошибки при копировании полученных ответов, но полученный им ответ, к сожалению, неверен.

Я хотел бы уточнить у Вас, а в каком месте у меня ошибка?
По поводу массы и массы покоя цитируя википедию

Такой подход был распространён в течение длительного времени, так как позволял провести многочисленные аналогии с классической физикой, однако в современной научной литературе используется редко, так как вносит дополнительную путаницу в терминологию, не давая никаких новых результатов.


По поводу фотона читаем тут

Если приписать фотону наличие т. н. «релятивистской массы» (термин ныне выходит из употребления)...


Фотон — безмассовая частица. Точка
Специалисты в области СТО и ОТО очень не любят понятия релятивистской массы.

Фотон отклоняется гравитационным полем, потому что согласно ОТО, движется по кратчайшему расстоянию между двумя точками в искривлённом пространстве — геодезической линии. Присутствие источника тяготения искривляет пространство-время вокруг него, фотон перемещается по траектории, соответствующей геодезической линии при получаемом искривлении пространства-времени.

Понятие массы фотона избыточное, «школьное» понятие и для понимания сути процессов вредно.
Дополню.

Двигатель — преобразует не механическую энергию (электрическую, тепловую) в механическую.

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

преобразующее энергию… через взаимодействие со средой

ключевой момент в определении
А если без шуток то интересно какой у этого двигателя КПД

У электрической машины традиционно высокий КПД, в пределах 70-90% (у очень мощных машин доходит до 98%). КПД ДВС меньше в 2-3 раза

Единственное препятствие к применению электрических машин в автономном транспорте — отсутствие достаточно емких источников питания
Постараюсь кратко ответить на все комментарии.

Во-первых скажу что вопрос выбора инструмента, это, во многом, вопрос субъективных личных предпочтений. Большое спасибо за полезные замечания и поелзные советы — они определенно будут учтены мной, когда что-то подобное придётся делать снова.

Но. Данная статья не позиционировалась как сравнение инструментов. Обычно статьи такого плана рождаются у меня так — возникает сугубо личная задача, эта задача успешно решается и возникает желание поделится с обществом достигнутыми результатами, дабы следующий «неофит» не тратил много времени на поиск информации. Принцип таков: сделал сам — отдай наработки другим. Считаю это правильным.

Изложенный выше текст приведен «как есть», по факту решения задачи. Он не претендует на академичность и не выставляет описанный инструмент в преимущественное по сравнению с другими продуктами положение.

Про WiX эт вы зря.


Имею желание его изучить, возможно я к нему ещё вернусь.

Можно, но сделать установку .NET через GUI с наскока не вышло.

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity