С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 24.10.2011
Сообщений: 39
1

Программа решения дифференциального уравнения методом Адамса: как создать GUI для неё?

21.05.2014, 23:44. Показов 1543. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер господа) Есть консольная программа решения дифференциального уравнения методом Адамса 4 порядка, нужно реализовать данный код в Windows Forms(Visual Studio)
Допустим есть форма, нужно сделать ячейки для начальных данных (a,b-границы интервала и нач координаты x,y)
и реализовать кнопку для решения самого уравнения (с добавлением кнопки уже знаком button) и построить график.

Суть вопроса состоит в том, что как это сделать? до этого времени все работы выполнялись в консоли и с формой я мало знаком.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <math.h>
#include <stdio.h>
#include <windows.h>
 
const float a=0,b=1;             // границы интервала
const int num_points=10,         // number of points to solve
          num_starting_points=4; // number of points to solve with Runge-Kutta method
float x0=0,yy=1;                 // starting conditions
 
float f(float x, float y)
{
  return x+y;  // y'=x+y
}
// this function realises Runge-Kutta method for n starting points
void calculate(float *y)
{
  float k1,k2,k3,k4,x,yi,h;
  h=(b-a)/num_points;  // step
  yi=yy; x=x0;
  for (int i=0;i<num_starting_points;i++)
  {
    k1=h*f(x,yi);
    k2=h*f(x+h/2,yi+k1/2);
    k3=h*f(x+h/2,yi+k2/2);
    k4=h*f(x+h,yi+k3);
    yi+=(k1+2*k2+2*k3+k4)/6;
    x+=h;
    *(y+i+1)=yi;
  }
}
void main(void)
{
  float y[num_points+1],h;
  y[0]=yy;
  calculate(y);
  h=(b-a)/num_points;
  //прогноз, вычисленный с использованием значений в предыдущих точках
  for (int i=num_starting_points;i<num_points;i++)
        y[i] = y[i-1]+h/24*(55*f(x0+(i-1)*h,y[i-1])-
                         59*f(x0+(i-2)*h,y[i-2])+
                         37*f(x0+(i-3)*h,y[i-3])-
                         9*f(x0+(i-4)*h,y[i-4]));
  printf("X\t\tY\t\tExact solution\n");
  for (int i=0;i<num_points;i++)
  printf("%f\t%f\t%f\n",(x0+i*h),y[i],(2*exp(x0+i*h)-(x0+i*h)-1));
  system("pause");
}
Миниатюры
Программа решения дифференциального уравнения методом Адамса: как создать GUI для неё?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2014, 23:44
Ответы с готовыми решениями:

Программа для решения дифференциального уравнения второго порядка методом Рунге-Кутта-Мерсона
Программа в Turbo Pascal для решения диференциального уравнения второго порядка методом...

Программа для решения дифференциального уравнения
Добрый день! Не выручите бедного студента?? Требуется Программа для решения дифференциального...

Программа для решения дифференциального уравнения первого порядка
Здравствуйте! Собственно требуется написать программу для решения диф.ура: y'=x3-y. Попробывал по...

Программа для решения уравнения методом итераций.
Здравствуйте. Подскажите, пожалуйста, что с моей программой не так(она зацикливается и не выводит...

3
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2014, 23:53 2
Тут С++. Вам сюда: https://www.cyberforum.ru/cpp-cli-winforms/
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.05.2014, 02:01 3
Цитата Сообщение от Ванек777 Посмотреть сообщение
Суть вопроса состоит в том, что как это сделать? до этого времени все работы выполнялись в консоли и с формой я мало знаком.
что мешает ознакомиться?
0
0 / 0 / 1
Регистрация: 24.10.2011
Сообщений: 39
25.05.2014, 23:44  [ТС] 4
Jupiter, немного уже ознакомился, теперь вот такой вопрос возник( сделал поля для ввода данных, например a,b,x,y,h, введенные данные копируются в буфер и отображаются в отдельном окне, например a=1,b=2,x=1,y1,h=0.01) теперь нужно реализовать решение уравнения, так как переменные a,b,x,y,h объявлены в кнопке(button) то и код должен быть в кнопке? Можете, пожалуйста, подсказать как реализовать подобное.
0
25.05.2014, 23:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2014, 23:44
Помогаю со студенческими работами здесь

Метод Эйлера для решения дифференциального уравнения
помогите создать программу решающую диф уравнение y'=2x^2+2y где х0=0 yo=1 h=0,2 на паскале или...

Метод конечных разностей для решения дифференциального уравнения
Используя метод конечных разностей, решить краевую задачу для дифференциального уравнения второго...

Как проверить правильность решения дифференциального уравнения?
Ну, собственно, вопрос уже в теме: &quot;Как проверить правильность решения дифференциального...

Нахождение численного решения задачи Коши для одного дифференциального уравнения
Найти указанном отрезке найти численное решение задачи Коши для одного дифференциального уравнения....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru