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