2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Интеграл численно
Сообщение26.06.2022, 21:38 
Аватара пользователя


26/05/12
1694
приходит весна?
ihq.pl в сообщении #1558566 писал(а):
А вы пробовали уже считать?

Конечно. С точностью все значащие разряды (на сколько численный поиск нуля позволяет).

Изображение

(График нулей)

Изображение


код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
%https://dxdy.ru/post1558470.html
clc
clearvars
format compact

x0 = log (2) / 2;
phi0 = x0 - pi / 4;
num = 16;

myfunc = @ (q, p) (cos (q - p) - exp (-q));

xx = 0 : 0.001 : 2;
pp = 2 * pi * xx;
yy = zeros (size (xx));
ksks = zeros (num, numel (yy));
for n = 1 : numel (yy)
    phi = phi0 + mod (pp (n) - phi0, 2 * pi);
    if 0 > phi
        ksi = fzero (@ (x) myfunc (x, phi), [0, x0]);
        ksks (1, n) = ksi;
        yy (n) = yy (n) + exp (-ksi);
        ksi = fzero (@ (x) myfunc (x, phi), [x0, pi / 2]);
        ksks (2, n) = ksi;
        yy (n) = yy (n) - exp (-ksi);
    else
        ksi = fzero (@ (x) myfunc (x, phi), [0, phi + x0]);
        ksks (1, n) = ksi;
        yy (n) = yy (n) + exp (-ksi);
        ksi = fzero (@ (x) myfunc (x, phi), [phi + x0, phi + pi]);
        ksks (2, n) = ksi;
        yy (n) = yy (n) - exp (-ksi);
    end
    for k = 2 : num - 1
        ksi = fzero (@ (x) myfunc (x, phi), [-pi, 0] + phi + pi * k);
        ksks (k + 1, n) = ksi;
        yy (n) = yy (n) + (-1) ^ k * exp (-ksi);
    end
end

if 1
    subplot(111)
    plot (xx, yy, 'LineWidth', 2)
    grid on
else
    subplot(111)
    plot (xx, ksks, 'LineWidth', 2)
    ylim ([0, 20])
    grid on
end
 


Не векторизованный код в Матлабе, конечно, очень медленно работает. Несколько десятков секунд. На графиках угол по горизонтали масштабирован в два пи раз для красоты. Счёт корней с индексами 2 и старше можно очень сильно ускорить за счёт их экспоненциальной близости к $\varphi-\pi/2+\pi k$. В зависимости от точности машинного числа с плавающей точкой, для старших членов нужно только один поправочный член добавить, чтобы получить точный результат.

 Профиль  
                  
 
 Re: Интеграл численно
Сообщение27.06.2022, 00:10 


18/05/15
731
B@R5uk, там не одна, а две особенности (одна около $0.9\pi$, вторая около $1.9\pi$), или я что-то не понимаю? Кстати, дошло сейчас еще одно преимущество интегралов с фиксированными концами: значения $e^x\cos x$ вычисляются заранее на сетке $-\pi/2+\pi m/N, m=0,...,N$, и потом для каждого $k$ ищется интервал сетки, на концах которого величина $e^x\cos x - e^{-\varphi-2\pi k}$ имеет разные знаки. Линейная интерполяция по этим концам даст хорошее приближение корня. Это быстрее, чем считать интеграл численно.. Как доберусь до компа, может, тоже попробую нарисовать график.

 Профиль  
                  
 
 Re: Интеграл численно
Сообщение27.06.2022, 00:19 
Аватара пользователя


26/05/12
1694
приходит весна?
ihq.pl в сообщении #1558593 писал(а):
или я что-то не понимаю?

Функция периодична по аргументу фи с периодом два пи. Я изобразил два периода для наглядности.

 Профиль  
                  
 
 Re: Интеграл численно
Сообщение27.06.2022, 11:19 
Заслуженный участник
Аватара пользователя


05/12/09
1813
Москва
Всем спасибо. Поняла про корень.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Утундрий


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group