Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 14:47   #1
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
Радость Дифференциальные уравнения

У меня вопрос по решению программным путём дифур, но если сказать точно есть загвоздка в нахождение производных и интегралов+ко всему этому необходимо распознать функцию в массиве(допустим если дано такое уравнение у'=y+x или такое y'=cosx как мне производить дальнейшиие вычисления, т.е подставлять x в уравнение). Короче работа тяжёлая что делать не представляю кто понял смысл чё я хотел сказать, прошу-с писать
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 15:01   #2
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Мда.....Я так и понял кто никто ничё не поймёт, но кто нибудь знает хотя бы как производные нормально находить?
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 15:24   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вам нужно численное значение производной, или аналитический вид?
Вообще, посмотрите вот тут:
http://forum.sources.ru/index.php?showtopic=9462
И еще вот это (сам не смотрел): http://referats.theringing.net/referats/?n=5465&e=73754
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 15:38   #4
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Численные методы решения дифур т.е 1 за ссылки спасибо, но я подумал можно с С не очень сложным способом решить уравнение я поразмыслил, и понял что можно обойтись и без производной, но необходимо в данное уравнение подставлять значения x и y вот пример
y'=y+x
Вот последующая формула
dy=yk+(yk+xk)h
в скобках данное уравнение а h это шаг он впринципе неизменим, на к не надо обращать внимание
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 15:44   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Вот последующая формула
dy=yk+(yk+xk)h
Это откуда такое взялось?

А чем вам не понравился способ с разбиением на отрезке?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 15:54   #6
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Это и есть разбиение на трезки где h шаг, если дорустим надо расчитать приближённое решение при х=1 то необходимо взять шаг равным 0.1 и расчитать по формуле

А d это дельта

Sazary: пользуйтесь "правкой"
Винда, KIS 2010, книжка по С/С++, остальное неважно........

Последний раз редактировалось Sazary; 06.06.2009 в 16:02.
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 16:06   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Странное какое-то разбиение. Тогда уж так как-нибудь:
Код:
dy=(y(x+h)-y(x))/h
Почему складываем-то?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.06.2009, 16:10   #8
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Так вот проблема такая вообщем, допустим я создам массив в который запишу функцию y+x дальше я рассчитаю какой взять шаг и все другие вещи, но потом мне необходимо подставлять кое кое какие значения для получения приближенных решений сначала при 0, пото м при 0.1 ;0.2 и так далее до 1, но
сначала мне надо программно создать формулу
У(у+1 это индекс)=у(к индекс)+(даная формула)*h
так вот проблема в этом как сделать что бы программа в скобочки поставила y+x а потом поставляла вместо них значения
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 16:24   #9
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Странное какое-то разбиение. Тогда уж так как-нибудь:
Код:
dy=(y(x+h)-y(x))/h
Почему складываем-то?
Поточу что уравнение заданное такое если бы было y'=sinx
то тогда уравнение следующее было бы
y(y+1)=Y(k)+sinx*h
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 06.06.2009, 17:15   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
допустим я создам массив в который запишу функцию y+x
Как вы ее туда запишете?
Цитата:
так вот проблема в этом как сделать что бы программа в скобочки поставила y+x а потом поставляла вместо них значения
Как-то мне сложно представить, что вы хотите сделать..
Вы хотите, чтобы пользователь сам вводил функцию? А потом будете ее парсить?
Если так, то, наверное, нужно в цикле (в котором вы и будете все это считать) вызывать эту функцию (парсящую) и значение, которое она вернет умножать уже на h..
Если я, конечно, правильно понял..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дифференциальные уравнения ACE Valery Свободное общение 4 28.05.2009 23:21
Вычислить уравнения systemmind Общие вопросы C/C++ 3 26.02.2009 18:31
Решение уравнения Datrav Паскаль, Turbo Pascal, PascalABC.NET 2 06.06.2008 08:23
Рекуррентные уравнения RIO Помощь студентам 1 13.01.2008 15:27