Продолжение этой темы Ошибки в коде при решении уравнения переноса. Полученная информация мне помогла во многом,но появилась проблема в выводе графика.
Проблемный участок кода найден. Весь код не выкладываю так как проблема пока именно в этом блоке.
inline double u0(int T,double x)//Начальные условия
{
return fn(T,x);
}
inline double u1(int T,double a,double xmin, double t)//Граничные условия-Проблема в этом коде
{
return fn(T,xmin - a * t);
}
for(int i=0; i<Nx;i++)
{
wht[0][i] = u0(T,xmin + i*hx);//Заполнение начальных условий
}
for(int j=0; j < Nt-1; j++)//Заполнение граничных условий
{
wht[j+1][0] = u1(T,a,xmin,j*ht);
}
Как видно на графике линии вместо того, чтобы оставаться и заканчиваться на своих координатах,они все уходят обратно в 0, хотя мне нужно чтобы они продолжались и оканчивались на своей линии.
Проверил координаты через блокнот и там одни 0.
Изменил код:
inline double u1(double ht)//Изменил возвращаемое значение в проблемном методе
{
return ht;
}
for(int i=0; i<Nx;i++)
{
wht[0][i] = u0(T,xmin + i*hx);//Заполнение начальных условий
}
for(int j=0; j < Nt-1; j++)//Заполнение граничных условий
{
wht[j+1][0] = qt(j*ht);
}
Код построения графика
///---------------Построение графика
for(int j = 0;j<Nt-1;j++)
{
for(int i = 0;i<Nx;i++)//Было Nx
{
chart2->Series["Series1"]->BorderWidth=3;
chart2->Series["Series1"]->Points->AddXY(i,wht[j][i]);
}
}
В результате в текстовом файле уже отображаются координаты по вертикали (0.4,0.8,1.2 и т.д.)
Но сам график стал ещё хуже:
Учитывая что мне нужно подниматься вверх по t(0.4,0.8,1.2) я и возвращаю ht (то есть шаг) и он у меня отображается, но, увы, почему-то вместо продолжения графика линии всё равно идут в обратную сторону.
Здесь снова проблема, связанная с программированием.




MoveToв некоторых местах происходитLineTo– DNS Mar 13 '17 at 13:06AddXYдобавьте очистку черезClear. При самом заполнение отладчиком поймайте ситуацию когда точка имеет координаты, которые не должны быть на графике. Если я правильно понял, то, например{0,0}. – αλεχολυτ Mar 14 '17 at 06:30