Алгоритм построения графика функции... |
Здравствуйте, гость ( Вход | Регистрация )
Алгоритм построения графика функции... |
Гость_Гость_Serg_yl_*_* |
8.3.2011, 19:44
Сообщение
#1
|
Гости |
Вечер добрый! :-)
Стоит задача. Разработать программу для вычисления определенного интеграла методом средних прямоугольников для функции типа: y=a*cos(b*x)+x^d. Коэффициенты a, b, c, d и границы интервала интегрирования считываются из файла. В диалоге необходимо изобразить график функции, графики прямых, ограничивающих область интегрирования, оси координат. Итак, начну излагать все порядку. Прошу меня поправить, если я не правильно излагаю алгоритм нахождения координат точек графики и вычисления определённого интеграла методом средних прямоугольников. 1. Построим график функции y=a*cos(b*x)+x^d. 1.1 Присвоим значения коэф. и границы интегрирования:
1.2 Получим общее кол. точек графика (итераций) с помощью метода средних прямоугольников.
1.3 Найдем координаты всех точек для построения графика ограниченного [0, 10].
Таким образом мы получаем 2 массива (xxx1 - коорд. X и yyy1 - коорд. Y ) типа double. 1.4 Строим наш график.
И тут начинается интересное... Программа запускается без ошибок, но график не строиться, а сама программа зависает (не отвечает). Приходится завершать только через диспетчер задач. 2. С нахождением определённого интеграла вроде все более менее понятно, хотя немного погодя тоже напишу. Прошу вашей помощи! Огромное спасибо! |
|
|
abc |
8.3.2011, 20:46
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
if (j=0) нужно записывать if (j==0)
ты всё время ставишь этим выражением J в 0, и цикл вечно крутится хотя компилятор вроде должен ловить такие ошибки, как if (j=0) стоит написать так: yyy1[0]=a*cos(b*n)+pow(n,d); for (int j=1; j<=iter; j++) { xxx1[j]=xxx1[j-1]+c; yyy1[j]=a*cos(b*xxx1[j])+pow(xxx1[j],d); } и к слову: если у тебя такая логическая связка: if(x==0) ... if(x!=0) ... то её следует оформлять так: if(x==0) ... else ... Сообщение отредактировал abc - 8.3.2011, 20:51 |
|
|
Serg_yl |
8.3.2011, 21:36
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 7.3.2011 Пользователь №: 2480 Спасибо сказали: 0 раз(а) Репутация: 0 |
abc - хоть как то заработало... Спасибо!
Теперь остается сделать проверку. Еще один вопрос, а как можно сделать автоподгонку шкалы осей x и y? |
|
|
Алексей1153 |
9.3.2011, 7:52
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Гость_Найтхевен_* |
14.4.2011, 23:03
Сообщение
#5
|
Гости |
"1.4 Строим наш график.
cosFunCurve = new QwtPlotCurve("Test"); cosFunCurve->setPen(QPen(Qt::blue)); cosFunCurve->setData(xxx1,yyy1,iter); cosFunCurve->attach(funPlot); funPlot->replot();" скажите,пожалуйста какие библиотеки надо подключать чтобы это юзать и как полученный график отобразить в виджет(какой виджет) |
|
|
Текстовая версия | Сейчас: 22.12.2024, 17:53 |