Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция интеграла где? математические библиотеки 
:(
    Опции темы
Helicopterr
Дата 3.1.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Подскажите есть ли функция решения определённого интеграла на Си++? И как вообще это можно сделать. В math.h ни интегралов ни лимитов нет...


--------------------
people can fly
PM MAIL   Вверх
pablo
Дата 3.1.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Если я не ошибаюсь, то для вычистления определённого интеграла можно использовать численные методы(например метод Монте-Карло). Математическая библиотека С++ таковых не имеет. smile


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Exekutor
Дата 3.1.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: 1
Всего: 4



Сам напиши, в чем проблема?


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Artiom
Дата 3.1.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Если это задание по лабораторной - то самое простое использовать метод прямоугольников. разбить интервал, в котором считаешь на много мелких отрезков и считать площадь прямоугольников. одна сторона - ширина мелкого отрезка, вторая - значение функции в точке посередине отрезка


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Helicopterr
  Дата 3.1.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Цитата(Exekutor @ 3.1.2006, 12:23)
Сам напиши, в чем проблема?

1) Конечный вид интеграла на момент компиляции неизвестен
2) Решить надо будет тысяч 10 интегралов желательно за пару секунд
3) Интеграл из тех, что наш математик называет поросятами

Самому такую функцию разрабатывать элементарно лень smile Должны быть либы вот только где их взять...


--------------------
people can fly
PM MAIL   Вверх
_hunter
Дата 3.1.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



ну так у MatLAB' а библиотеки бери -- они ( AFAIK ) бессплатны ( для некомерческого использования )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
sergejzr
Дата 3.1.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Цитата(Helicopterr @ 3.1.2006, 19:33)
Должны быть либы вот только где их взять...

А как ты себе либу представляешь? Для этого в ней должен быть предопределён синтакс определения функций, точность, разрешение и ещё много чего. такая либа быстро разрастётся в программу. Но всё это есть в матлабоподобных приложениях, поэтому писать либы под С++ смысла мало.

Артём правильно сказал - прямоугольники...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Дрон
Дата 3.1.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



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

Цитата(Helicopterr @ 3.1.2006, 20:33)
Конечный вид интеграла на момент компиляции неизвестен

А вот это уже другая задача. Для начала надо определиться как будет задаваться интеграл.

ЗЫ:
Цитата(Helicopterr @ 3.1.2006, 20:33)
Интеграл из тех, что наш математик называет поросятами

И откуда нам знать, что ваш математик называет поросятами smile



--------------------
Да. Именно так.
PM   Вверх
Helicopterr
Дата 5.1.2006, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Фак постоянно у меня на этом форуме ник слетает

да, конечно, поросята - это большие формулы на всю доску. Вот так.
Некто Johna Smith предложил так реализовывать метод прямоугольников

Код

#include "stdafx.h"


double func(double x)
{
return -(x - 26)*(x - 26) / 2.0 * 9.4; //функция под интегралом для примера
}


double Integrate(double x1, double x2, double step) // функция дяди Johna
{
double x=x1;
double I=0; // integral value

while (x<x2-step)
{
// calculating function at the halfpoint of interval
I+=step*func(x+step/2);
x+=step;
}

return I;
}

void main(void)
{
printf("I=%f",Integrate( 1.0, 25.0,1e-4)); // интеграл от 1 до 25
}

//вывод:
//-24477.6000
//а правильно:
//-277.021


Короче считает неправильно. Кто-нибудь видит ошибку?


--------------------
people can fly
PM MAIL   Вверх
Mephistopheles
Дата 5.1.2006, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегущий от света
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 15.11.2005
Где: Где нет света

Репутация: нет
Всего: 6



Какой метод треугольника? Фигня всё это.
Самый простой и нагрузочный для камнявариант - методом разбиения.
Второй - метод Монте - Карло.
Был ещё какой-то более быстрый. Если надо - гляну.
--------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света.
PM MAIL WWW ICQ   Вверх
volvo877
Дата 5.1.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Цитата(Helicopterr @ 5.1.2006, 02:14 Найти цитируемый пост)
//вывод:
//-24477.6000
//а правильно:
//-277.021

Это с чего ты взял, что правильно = -277.021? Для заданной тобой функции как раз ответ верный... Чтобы получалось -277.021 функция должна быть такой:
Код
double func(double x)
{
return -(x - 26)*(x - 26) / (2.0 * 9.4); // Чувствуешь разницу ?
}

PM MAIL   Вверх
Helicopterr
Дата 5.1.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



volvo877
Спасибо не заметил! GOOD! Остался только один вопрос. Там double x2 - верхний предел интеграла, а как быть если у меня верхний предел бесконечность?


--------------------
people can fly
PM MAIL   Вверх
Partizan
Дата 5.1.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 67



Helicopterr, у вас курс высшей математики был?...
Такие интегралы, насколько я помню называются несобственными.....и записываются с помощью пределов....

З.ы. Да...и кстати...если функция не ограничена на числовой прямой, думаю очевидно, что невозможно указать точное значение несобственного интеграла...

Это сообщение отредактировал(а) Partizan - 5.1.2006, 23:34


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Void
Дата 5.1.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Helicopterr
Один вопрос (почти праздный): какого рода подинтегральные функции, хотя бы приблизительно: полиномы, рациональные, трансцедентные, что еще похуже?


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Helicopterr
  Дата 5.1.2006, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Void вот прикрепляю,
видимо действительно придётя представлят как предел и раскладывать в ряд а потом рекурсией...

Присоединённый файл ( Кол-во скачиваний: 24 )
Присоединённый файл  integral.gif 3,40 Kb


--------------------
people can fly
PM MAIL   Вверх
Void
Дата 6.1.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Helicopterr
Функция оказалась серьезнее, чем я предполагал smile
Цитата(Helicopterr @ 6.1.2006, 01:54 Найти цитируемый пост)
ридётя представлят как предел и раскладывать в ряд а потом рекурсией...

Цитата(Helicopterr @ 3.1.2006, 22:33 Найти цитируемый пост)
2) Решить надо будет тысяч 10 интегралов желательно за пару секунд

Успеешь? Сначала аналитически до функции, не зависящей от x, довести никак нельзя?


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
ST1
Дата 6.1.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.7.2005
Где: Уфа

Репутация: нет
Всего: 1



Господин Smith все-таки прав (вернее его программа): правильный ответ все-таки -24479,1(6) (в пределах ошибки аппроксимации)
Вот здесь глянь сорсы:
1) http://www.srcc.msu.su/num_anal/lib_na/cat/cat7.htm - Каталог БЧА НИВЦ МГУ. Численное интегрирование
2) netlib.org, gams.nist.gov, www.nr.com -- бибилиотеки численных "рецептов"
3) http://rtf.tsure.ru/~lyashev/links.php - в разделе Numerical Integration and Harmonic Analysis
Вообще совет - ищи англоязычные ресурсы (в рунете мало ценного на тему численногог анализа)
PM MAIL WWW ICQ   Вверх
profispb
Дата 6.1.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.12.2005
Где: Санкт - Петербург

Репутация: 1
Всего: 1



Самое простое методом Симпсона. smile
--------------------
В жизни, я люблю делать, то что я люблю. А не то что модно, престижно и выгодноЛюблю когда начинает работать, то что без меня не работало!
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.