Skip to content

Integrate a rational function times a logarithm of powers of linears by parts - #1910

Merged
Rafael-SOWNet merged 5 commits into
masterfrom
a-rational-function-times-a-logarithm-of-powers-of-linears
Oct 16, 2026
Merged

Rafael-SOWNet merged 5 commits into
masterfrom
a-rational-function-times-a-logarithm-of-powers-of-linears

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #718.

integral R ln(G), with R a rational function and G a product of powers of linears nested in powers and constants, is now integrated by parts: S ln(G) - integral S G'/G, with S = integral R. G'/G is read off G as it is written: a product's is the sum of its factors', a power's is the exponent times its base's, and a linear's is b/(a + b x). That is exact by the chain rule on any branch, and rational. Rubi's 3.2.3 ln(e (f (a + b x)^p (c + d x)^q)^r) was declined.

SolveARationalFunctionTimesALogarithmOfPowersOfLinears:

  • needs S to come back rational, so the remainder stays rational;
  • asks the remainder as the same question rather than one of its own, because lifted it may not lift again, and the sum it splits into was declined;
  • is not checked at sampled points: each step is exact by construction, and the check reported a difference for an answer that agrees with the integrand to fifty digits at the very points it pins (ln(k (f (a + b x)^p (c + d x)^q)^r) with p = 5.37, r = 2.83).

Fenced after the first chain. Asked first with a polynomial beside the logarithm, it pre-empted by parts: (f + g x)^4 (A + B ln(e ((a + b x)/(c + d x))^n)) ran out of time on its remainder, and (g + h x) ln(...) slowed from 1.2 s to 3.6 s. A polynomial of degree one or more is now asked only once everything else has declined, from a second, late call. That keeps x ln(...), which nothing else answers.

Checks

  • Exact checks at 50 and 300 digits on five shapes, three pin sets: 120/120.
  • ARationalFunctionTimesALogarithmOfPowersOfLinearsIntegralTest: 4 cases.

Corpus, measured against master 90c9d3e (this branch then merged 87be872):

master this branch, fenced, re-run back to back
the moved rows and 3.2.3:45 and :30, 16 in all 8 13
rows gained +5: 3.2.3:30, 46, 49; 3.3:610, 612

The chain itself ran on all of family 3 before the fence (3,085 rows; master 1,340 of 1,382 statable, branch 1,343). The fence came from that run, and the rows it moved were re-run on both arms afterwards. Gate passed before the fence; the suite on the fenced branch passed: 15,468, 0 failed.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 5 commits October 16, 2026 14:04
…by parts

integral R ln(G) = S ln(G) - integral S G'/G with S = integral R rational and G'/G read off G as
written -- a product's is the sum of its factors', a power's the exponent times its base's, a
linear's b/(a + b x) -- exact by the chain rule on any branch. The remainder is asked as the same
question: lifted, it may not lift again, and its sum was declined. Rubi's 3.2.3
ln(e (f (a + b x)^p (c + d x)^q)^r), over (a + b x)^5 and over (g + h x)^3, were declined or ran
out of time.

Part of #718

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Asked first, (f + g x)^4 (A + B ln(e ((a + b x)/(c + d x))^n)) ran out of time on its remainder,
a fifth power over two linears, where by parts had answered it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
…lse has declined

The fence left x ln(e (f (a + b x)^p (c + d x)^q)^r) to by parts, which declines it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
…-times-a-logarithm-of-powers-of-linears

# Conflicts:
#	Sources/AngouriMath/Functions/Continuous/Integration/IndefiniteIntegralSolver.cs
#	Sources/AngouriMath/Functions/Continuous/Integration/Integration.Definition.cs
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet Rafael-SOWNet added this to the 2.6.0 milestone Oct 16, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit bf4be60 into master Oct 16, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant