Вычерчивание графиков. Функция Plot.
Пусть функции, графики которых мы хотим построить, получаются с помощью функции Table или NDSolve. Для определенности пусть это будут полиномы Чебышева. Следующая строка ошибочна.
Plot[Table[ChebyshevT[n,x],{n,1,4}],{x,-1.1})Дело в том, что здесь система Mathematica не сможет вычислить функции. Почему? Давайте разберемся. Начнем сначала.
Вот график, который строится без проблем.

Здесь построены графики первых четырех полиномов Чебышева первого рода: ChebyshevT[ 0, x] – полином нулевого порядка, равный тождественно единице, ChebyshevT[l,x] = х, а также полиномы ChebyshevT[2,z] и ChebyshevT[ 3,x].
Но вот так график построить не удастся.
list01={ChebyshevT[0,x],ChebyshevT[1,x],ChebyshevT[2,x],ChebyshevT[3,x]} {1, x, -1 + 2x2, -3x + 4x3} Plottlist 0 1,{x,-1.1}]; Plot::plnr: list 0 1 is not a machine-size real number at x =-1.. More...Оказывается, система Mathematica не может вычислить значения list01! Почему? Потому что функция Plot имеет атрибут HoldAll.
Attributes[Plot] {HoldAll,Protected)Этот атрибут указывает, что аргументы функций вычисляться не должны. Обычно аргументы функций вычисляются.
hh[1+2.2+3.3+4] hh[3.5.7]Но если функции приписать атрибут HoldAll, вычисления аргументов выполняться не будут.
SetAttributes[hh,HoldAll] hh[1+2.2+3.3+4] hh[1+2.2+3.3+4]Чтобы в таких случаях выполнить вычисления, можно использовать функцию Evaluate. Выражение Plot [Evaluate [list0l], {x,-1, 1} ]; строит предыдущий график без проблем.
Ниже построены графики 8 полиномов Чебышева.

