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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2013, 21:18   #1
Ayamy
Новичок
Джуниор
 
Регистрация: 28.12.2013
Сообщений: 11
По умолчанию Решение бесконечного интеграла

Нужно составить программу для вычисления интенсивности излучения, а формула вот эта
Io:=(c1)exp(-m*x)/(sqr(L)*sqr(L)*L*(exp(c2/L*T)-1).
нужно взять интеграл от нее от нуля до бесконечности по L.
переменные 2- это m и L.для каждой L своя m. Попыталась сама решить но не вышло
Ayamy вне форума Ответить с цитированием
Старый 28.12.2013, 21:35   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Никакой бесконечности в машине не может быть. Надо брать интеграл до какого-то предела, который обеспечит нужную точность ε
И что значит загадочная фраза " для каждой L своя m " ?
И чья формула? Я вот закон Стефана — Больцмана помню : P пропорционально T^4
type_Oleg вне форума Ответить с цитированием
Старый 29.12.2013, 00:49   #3
Ayamy
Новичок
Джуниор
 
Регистрация: 28.12.2013
Сообщений: 11
По умолчанию

Во-первых,это используется не закон Стефана-Больцмана,а закон Бугера,который рассчитываем так: http://screeny.ru/52bf38b0b23e18421c0210a7
Во-вторых,я знаю что бесконечность не задается в паскале,но вот какую точность брать для расчета?Как мне сказал науч.рук.,нужно его посчитать любым из методов: трапеций, Симпсона или же прямоугольников.
а насчет L и m-то есть для каждой длины волны есть свой коэффициент поглощения и интенсивность мы рассчитываем по ним.

Последний раз редактировалось Ayamy; 29.12.2013 в 00:51.
Ayamy вне форума Ответить с цитированием
Старый 29.12.2013, 00:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в чем беда то? Ну считайте и суммируйте площади прямоугольников от нуля с каким-то шагом (допустим 0.1) до тех пор, пока полученная площадь очередного прямоугольника станет меньше скажем 0.0000001. Сами выбирайте. Или проблема как это закодировать? Шаг и точность скорее всего эмпирически подобрать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.12.2013, 01:03   #5
Ayamy
Новичок
Джуниор
 
Регистрация: 28.12.2013
Сообщений: 11
По умолчанию

НУ для меня проблема именно в кодировании. Сколько бы не делала все в пустую..
Ayamy вне форума Ответить с цитированием
Старый 29.12.2013, 01:18   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну примерно в таком направлении методом прямоугольников
Код:
x:=0; s:=0; Step:=0.1; Precision:=0.000001;
repeat
  s1:=<значение подинтегральной функции в точке x> *Step;
  s:=s+s1;
  x:=x+Step;
until s1<Precision;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.12.2013, 01:29   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Так какую функцию надо проинтегрировать?
Точность зависит от числа шагов и от предела (который вместо ∞). Но я сам не знаю как по заданному ε определить нужное количество шагов и предел. Есть какая-то методика в математике, но довольно сложная, от конкретной функции зависит.

И как зависит m от L ? m = 4*пи*k/L - так ?

Аватар , тут еще проблема, что интеграл - несобственный. Бесконечный предел.
Изображения
Тип файла: jpg for3.jpg (51.7 Кб, 118 просмотров)

Последний раз редактировалось type_Oleg; 29.12.2013 в 01:33.
type_Oleg вне форума Ответить с цитированием
Старый 29.12.2013, 01:43   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
тут еще проблема, что интеграл - несобственный. Бесконечный предел.
Я это понимаю. Поскольку он все таки конечный и значение функции к нулю убегает при больших x, наподобие вероятностных интегралов, то считать примерно так, как показал. Насчет точности и приращения пас, забыл уже все. Или эмпирически, или ТС нужно поднять соответствующие разделы мат.анализа и методов приближенных вычислений
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.12.2013, 01:50   #9
Ayamy
Новичок
Джуниор
 
Регистрация: 28.12.2013
Сообщений: 11
По умолчанию

m мы находим по инфракрасному спектру поглощения атмосферы.формулы я не знаю.я L и m задавала в входном файле.
Ayamy вне форума Ответить с цитированием
Старый 29.12.2013, 02:10   #10
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Вот, в общем виде - интегрирование трапециями
Код:
program Integral;

// функция, которую нужно проинтегрировать 
function fun(x:Double):Double;
begin
 fun:=Exp(-x);  
end;

// функция для расчета интеграла от x1 до x2 методом трапеций
function IntegrTrap(x1,x2:Double;n:Integer):Double;
var i:Integer;
    dx,s:Double;
begin
  s:=0;
  dx:=(x2-x1)/n;
  for i:=1 to n do
     s:=s+dx*(fun(x1+i*dx)+fun(x1+(i-1)*dx))/2;
  IntegrTrap:=s;
end;

var y,a,b : Double;
// сама программа
begin
 Writeln('Пределы : ');
 Readln(a,b);  // 
 y:=IntegrTrap(a,b,1000);	// 1000 трапеций
 Writeln(y);
 Readln;	
end.
В fun вместо :=Exp(-x); надо написать то, что надо. И если там будут еще переменные, кроме x, надо соответственно изменить в IntegrTrap
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение интеграла методом трапеции Тёма777 Общие вопросы C/C++ 11 20.05.2013 20:38
решение интеграла метод симпсона Ruslan4iK Общие вопросы C/C++ 0 02.10.2011 19:17
Решение определенного интеграла!!! Ислам Помощь студентам 4 12.03.2011 21:09
Решение интеграла A_r_r_a_y Помощь студентам 2 09.03.2010 22:02
Решение интеграла на ПАСКАЛЕ 34882 Паскаль, Turbo Pascal, PascalABC.NET 2 08.03.2008 13:13