@ars-bars

C# WinForms Chart — квадратичная функция Spline?

Всем привет!

Прошу помощи — разобраться в следующем вопросе.
Имеется квадратичная функция, заданная как y = 0,5773 * x^2 + 0,6183 * x - 0,0331.
Имеются точки X:
0,057
0,177
0,283
1,087

Имеется компонент Chart. ChartType для графика установлен Spline.
На выходе получается такая картина:
5ae2f699254f9256716000.jpeg

Что за лишний изгиб в графике? Как от него избавиться?
Нужна плавная квадратичная линия.

Прикладываю также исходный код.
public Form1()
        {
            double[] X = new double[4] { 0.057, 0.177, 0.283, 1.087 };
            double[] Y = new double[4];

            for (int i = 0; i < X.Length; i++)
                Y[i] = CalcPolynom(X[i], new double[3] { -0.0331, 0.6183, 0.5773 });


            InitializeComponent();

            Series s = chart1.Series[0];

            for (int i = 0; i < X.Length; i++)
                s.Points.AddXY(X[i], Y[i]);
        }

        double CalcPolynom(double x, double[] coeffs)
        {
            double y = 0;
            double x_interim = 1;

            for (int i = 0; i < coeffs.Length; i++)
            {
                y += x_interim * coeffs[i];
                x_interim *= x;
            }

            return y;
        }
  • Вопрос задан
  • 1666 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Codebaker
Всё умею, всё могу!
Элементарно, вы объявляете массив точек Х, но для расчёта Y используете другой набор величин (анонимный массив на 3 значения: new double[3] { -0.0331, 0.6183, 0.5773 }) - в нём как раз вторая точка находится чуть правее, чем последняя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы