
Вот мой код:
\begin{tikzpicture}
[
scale=1.05,
declare function=
{
funcc(\x)=
%(\x<-0.6) * (\x)+
(\x<-0.6) * (0.7285067873303168+2.058823529411765*\x+2.1606334841628962*\x^2 + 0.7918552036199096*\x^3)+
and(\x>=-0.6,\x<-0.4) * (1.1411764705882352+ 4.294117647058823*\x + 6.029411764705881*\x^2 +
2.941176470588235*\x^3)+
and(\x>=-0.4,\x < -0.2) * (0.5*(2 + 6*\x + 5*\x^2))+
and(\x>=-0.2,\x <0) * (1 +1*\x - 12.5*\x^2 - 25*\x^3)+
and(\x>=0,\x <0.2) * (1 - 1*\x - 12.5*\x^2 +25*\x^3)+
add(\x>=0.2,\x < 0.4) * (0.5*(2 - 6*\x + 5*\x^2))+
and(\x>=0.4 ,\x<0.6) * (1.14118 - 4.29412*\x + 6.02941*\x^2 - 2.94118*\x^3) +
%(\x>=0.6) * (\x^3);
(\x>=0.6) * (0.728507 - 2.05882*\x + 2.16063*\x^2 - 0.791855*\x^3);
},
]
\begin{axis}
[
title = {},%\quad The distribution of the points and the line of regression},
axis lines = middle,
legend pos=outer north east,
xlabel={$x$},
ylabel={$y$},
xmin=-2, xmax=2,
ymin=-2, ymax=2,
]
\addplot%S 10
[
domain = -1:1,
legend pos=outer north east,
color=yellow,
samples = 1000
]
{
(\x<-0.6) * (0.7285067873303168+2.058823529411765*\x+2.1606334841628962*\x^2 + 0.7918552036199096*\x^3)+
and(\x>=-0.6,\x<-0.4) * (1.1411764705882352+ 4.294117647058823*\x + 6.029411764705881*\x^2 +
2.941176470588235*\x^3)+
and(\x>=-0.4,\x < -0.2) * (0.5*(2 + 6*\x + 5*\x^2))+
and(\x>=-0.2,\x <0) * (1 +1*\x - 12.5*\x^2 - 25*\x^3)+
and(\x>=0,\x <0.2) * (1 - 1*\x - 12.5*\x^2 +25*\x^3)+
add(\x>=0.2,\x < 0.4) * (0.5*(2 - 6*\x + 5*\x^2))+
and(\x>=0.4 ,\x<0.6) * (1.14118 - 4.29412*\x + 6.02941*\x^2 - 2.94118*\x^3) +
%(\x>=0.6) * (\x^3);
(\x>=0.6) * (0.728507 - 2.05882*\x + 2.16063*\x^2 - 0.791855*\x^3)
};
\addplot %N 10
[
domain = -1:1,
legend pos=outer north east,
color=green,
samples = 1000
]
{
-220.942*x^10+494.91*x^8-381.434*x^6+123.36*x^4-16.8552*x^2+1.
};
\addplot %N_{5}
[
domain = -1:1,
legend pos=outer north east,
color=blue,
samples = 1000
]
{
1.20192*x^4-1.73077*x^2+0.567308
};
%\addlegendentry{$N_{5}(x)$}
\addplot %f(x)
[
domain = -1:1,
legend pos=outer north east,
color=red,
samples = 1000
]
{
1 /(1+25*x^2)
};
%\addlegendentry{$f(x) = \frac{1}{1+25x^{2}}$}
\legend{$S_{10}(x)$,$N_{10}(x)$,$N_{5}(x)$,$f(x) = \frac{1}{1+25x^{2}}$};
\end{axis}
\end{tikzpicture}
Результат ниже:
Желтая линия должна быть почти равна красной линии, но разница слишком велика.
Ниже приведен правильный результат желтой линии, полученный мной из Mathematica:
Я все равно не могу найти свою ошибку, поэтому думаю, что проблема в самом pdgplots. Кстати, мне потребовалась около ночи, чтобы исправить свой код, но, похоже, все в порядке.
решение1
Изменение всех add
на and
дает:
\documentclass[border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
[
scale=1.05,
declare function=
{
funcc(\x)=
%(\x<-0.6) * (\x)+
(\x<-0.6) * (0.7285067873303168+2.058823529411765*\x+2.1606334841628962*\x^2 + 0.7918552036199096*\x^3)+
and(\x>=-0.6,\x<-0.4) * (1.1411764705882352+ 4.294117647058823*\x + 6.029411764705881*\x^2 +
2.941176470588235*\x^3)+
and(\x>=-0.4,\x < -0.2) * (0.5*(2 + 6*\x + 5*\x^2))+
and(\x>=-0.2,\x <0) * (1 +1*\x - 12.5*\x^2 - 25*\x^3)+
and(\x>=0,\x <0.2) * (1 - 1*\x - 12.5*\x^2 +25*\x^3)+
and(\x>=0.2,\x < 0.4) * (0.5*(2 - 6*\x + 5*\x^2))+
and(\x>=0.4 ,\x<0.6) * (1.14118 - 4.29412*\x + 6.02941*\x^2 - 2.94118*\x^3) +
%(\x>=0.6) * (\x^3);
(\x>=0.6) * (0.728507 - 2.05882*\x + 2.16063*\x^2 - 0.791855*\x^3);
},
]
\begin{axis}
[
title = {},%\quad The distribution of the points and the line of regression},
axis lines = middle,
legend pos=outer north east,
xlabel={$x$},
ylabel={$y$},
xmin=-2, xmax=2,
ymin=-2, ymax=2,
]
\addplot%S 10
[
domain = -1:1,
legend pos=outer north east,
color=yellow,
samples = 100
]
{
(\x<-0.6) * (0.7285067873303168+2.058823529411765*\x+2.1606334841628962*\x^2 + 0.7918552036199096*\x^3)+
and(\x>=-0.6,\x<-0.4) * (1.1411764705882352+ 4.294117647058823*\x + 6.029411764705881*\x^2 +
2.941176470588235*\x^3)+
and(\x>=-0.4,\x < -0.2) * (0.5*(2 + 6*\x + 5*\x^2))+
and(\x>=-0.2,\x <0) * (1 +1*\x - 12.5*\x^2 - 25*\x^3)+
and(\x>=0,\x <0.2) * (1 - 1*\x - 12.5*\x^2 +25*\x^3)+
and(\x>=0.2,\x < 0.4) * (0.5*(2 - 6*\x + 5*\x^2))+
and(\x>=0.4 ,\x<0.6) * (1.14118 - 4.29412*\x + 6.02941*\x^2 - 2.94118*\x^3) +
%(\x>=0.6) * (\x^3);
(\x>=0.6) * (0.728507 - 2.05882*\x + 2.16063*\x^2 - 0.791855*\x^3)
};
\addplot %N 10
[
domain = -1:1,
legend pos=outer north east,
color=green,
samples = 100
]
{
-220.942*x^10+494.91*x^8-381.434*x^6+123.36*x^4-16.8552*x^2+1.
};
\addplot %N_{5}
[
domain = -1:1,
legend pos=outer north east,
color=blue,
samples = 100
]
{
1.20192*x^4-1.73077*x^2+0.567308
};
%\addlegendentry{$N_{5}(x)$}
\addplot %f(x)
[
domain = -1:1,
legend pos=outer north east,
color=red,
samples = 100
]
{
1 /(1+25*x^2)
};
%\addlegendentry{$f(x) = \frac{1}{1+25x^{2}}$}
\legend{$S_{10}(x)$,$N_{10}(x)$,$N_{5}(x)$,$f(x) = \frac{1}{1+25x^{2}}$};
\end{axis}
\end{tikzpicture}
\end{document}
Где желтый участок находится рядом с красным участком. Очевидно, я не знаю, что вы пытаетесь сделать, но кажется более вероятным, что вы совершили эту ошибку, чем это из-за ошибки.