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

(обычно пишут без скобок:

), где

— линейное отображение (см. ссылку
realeugene), и соответственно

— векторы некоторых линейных пространств;

при этом известны, а

неизвестен. Однородное линейное уравнение — это когда

, в противном случае оно неоднородное. Теперь представьте, что вы имеете некоторое одно решение

неоднородного уравнения

, и знаете также множество

всех решений однородного

. Пользуясь свойствами линейности

, соберите множество всех решений неоднородного.
У вас должно получиться как раз множество

: возьмём любое решение неоднородного уравнения

; его можно представить как

. Раз это решение, то

, что равносильно

, то есть, что

— решение соответствующего однородного уравнения. (Это доказательство в обе стороны, но может выглядеть однобоким.)
(Обычные линейные уравнения одной вещественной переменной и системы из многих уравнений от вещественных переменных получатся, если ввести на пространствах, на которых действует

, базисы, и для координат

получится обычная матричная система.)
Вам наверно интересно, как это стыкуется с теми определениями линейности (систем) полиномиальных уравнений. Тут всё просто: они должны получаться из какого-то такого линейного уравнения, а потому каждое из уравнений системы должно иметь вид

, где

известные. Если добавить в левую часть хоть один моном с произведением нескольких неизвестных (и полной степенью выше 1), она станет нелинейной относительно всего набора неизвестных разом.
Тогда общее решение неоднородного уравнения будет... Я даже не знаю, как сложить частное решение ЛНУ с общим решением ЛДУ и как это записать.
Параметрически. Общее решение

имеет вид

(например),

, частное решение

запишем как

. Теперь сложим и получим

.
P. S. А уравнения на функции будут отличаться тем, что неизвестная функция

— это как бесконечный набор неизвестных

, для каждого

своя. Когда мы складываем функции, мы так же как выше складываем значения таких переменных для каждой переменной по отдельности. А дифференцирование — это линейное отображение:

,

, так что если в дифуре не возводить неизвестную функцию и её производные в степени и вообще друг на друга их не умножать, оно будет совершенно натурально линейным; на известные же функции умножать можно, потому что это тоже линейная операция:

,

.