That might interest some here:
Symbolic-Numeric Integration of Univariate Expressions based on
Sparse Regression https://arxiv.org/abs/2201.12468
Peter Luschny schrieb:
That might interest some here:
Symbolic-Numeric Integration of Univariate Expressions based on
Sparse Regression https://arxiv.org/abs/2201.12468
The total numbers of indefinite integrals in Table 1 on page 7 do not
agree with the sources; in my files, Hearn's suite comprises 285
integration problems and Timofeev's suite 705 problems. From these
numbers, one computes a modest success rate of 67% for Hearn, and a disappointingly low 19% for Timofeev. The principle used in selecting
the integration problems must be clearly documented in the paper -
readers will suspect Texas sharpshooting otherwise.
Also, two instances of "Apostle" on page 7 should be corrected to
"Apostol".
Martin.
PS: Are the authors reinventing ancient technology? Their integrator
should perhaps be run against Moses' SIN program.
If there is a way to fix the random seem to some value, so same anti-derivative is
generated each time, this I can do that, but I do not know how to do this.
On 9/3/2022 7:56 PM, Nasser M. Abbasi wrote:
If there is a way to fix the random seem to some value, so same anti-derivative is
generated each time, this I can do that, but I do not know how to do this.
Typo above:
Meant to fix the random "seed" used before making the call.
This way I post the results, and then say this was generated using this specific seed.
So result shown will be reproducable. Otherwise now, Julia gets
different score each time it is run.
On 9/3/2022 8:10 PM, Nasser M. Abbasi wrote:
On 9/3/2022 7:56 PM, Nasser M. Abbasi wrote:
If there is a way to fix the random seem to some value, so same
anti-derivative is
generated each time, this I can do that, but I do not know how to do
this.
Typo above:
Meant to fix the random "seed" used before making the call.
This way I post the results, and then say this was generated using
this specific seed.
So result shown will be reproducable. Otherwise now, Julia gets
different score each time it is run.
fyi
I think I found a fix. But doing
Random.seed!(12) #must do this in order to reproduce same result
Then now same antiderivative is generated each time. So now I can add
Julia integrator to CAS integration tests.
Random.seed!(12) #must do this in order to reproduce same result
Then now same antiderivative is generated each time. So now I can add
Julia integrator to CAS integration tests.
That doesn't seem correct to me since users will get whatever first seed
the system generates (unless they choose their own as you are). The
chances that they will choose 12 as you have is small. I would either
give the system a fail because it is unreliable on that problem or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct. The fact that you had to search for a
seed that led to correct behavior voids the system's ability for that example. It might be that you could find a seed for each problem in the
test suite that leads to correct behavior for the problem. But that
doesn't make the system perfect.
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
julia bug_2.jlbefore calling integrate
julia bug_2.jlbefore calling integrate
julia bug_2.jlbefore calling integrate
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
Random.seed!(12) #must do this in order to reproduce same result
Then now same antiderivative is generated each time. So now I can add
Julia integrator to CAS integration tests.
That doesn't seem correct to me since users will get whatever first seed
the system generates (unless they choose their own as you are). The
chances that they will choose 12 as you have is small. I would either
give the system a fail because it is unreliable on that problem or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct. The fact that you had to search for a
seed that led to correct behavior voids the system's ability for that example. It might be that you could find a seed for each problem in the
test suite that leads to correct behavior for the problem. But that
doesn't make the system perfect.
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
julia bug_2.jlbefore calling integrate
julia bug_2.jlbefore calling integrate
julia bug_2.jlbefore calling integrate
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
I would either
give the system a fail because it is unreliable on that problem
or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct.
seed that led to correct behavior voids the system's ability for that example. It might be that you could find a seed for each problem in the
test suite that leads to correct behavior for the problem. But that
doesn't make the system perfect.
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
On 9/3/2022 11:25 PM, Jeff Barnett wrote:
Random.seed!(12) #must do this in order to reproduce same result
Then now same antiderivative is generated each time. So now I can add
Julia integrator to CAS integration tests.
That doesn't seem correct to me since users will get whatever first seed
the system generates (unless they choose their own as you are). The
chances that they will choose 12 as you have is small. I would either
give the system a fail because it is unreliable on that problem or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct. The fact that you had to search for a
seed that led to correct behavior voids the system's ability for that
example. It might be that you could find a seed for each problem in the
test suite that leads to correct behavior for the problem. But that
doesn't make the system perfect.
Basically when you are testing a system that uses a "probabilistic"
approach, you need to develop scoring methods that account for that fact.
But I have documented that this result is based on using seed `12`.
Any other value could very well generate new result.
So if someone wants to obtain the same result as I have obtained,
they have to use same seed.
I would either
give the system a fail because it is unreliable on that problem or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct.
On 9/3/2022 11:25 PM, Jeff Barnett wrote:^-1) - 0.21458141730725133x - 0.9634428771843939(((9//25) + (6//5)*x + x^2)^-1) - 0.010517325162243041log(x - (1//2)) - 4.274386808487491log((2//3) + x) - 0.00644913222957772x*(((1//4) + x^2 - x)^-1) - 2.1371934042401866(x^3)*(((4//9) + (4//3)*x + x^2)^-
I would either
give the system a fail because it is unreliable on that problem or I
would test it for, say, a 100 or so seeds and give the number (a
percent) that it gets correct.
I've tried your idea. I've run this integral 100 times, using
100 different seeds and printed the anti-derivative each time
-------------------------
using Symbolics
using SymbolicNumericIntegration
using Dates
import Random
@syms x
integrand = 1 / (((1 - 2*x)^3)*((2 + 3*x)^3)*((3 + 5*x)^2))
for i=1:100
Random.seed!(i)
anti,n_unsolved,residual_error =integrate(integrand,x)
println("seed = ",i,", anti=",anti)
end
----------------------------
This is what I get
---------------------------
seed = 1, anti=0
seed = 2, anti=0
seed = 3, anti=0.0032245661147886633(((1//4) + x^2 - x)^-1) + 1.3932951722611113(((4//9) + (4//3)*x + x^2)^-1) + 4.2331946787976005log((3//5) + x) + 2.3517748215530303(x^3)*(((9//25) + (6//5)*x + x^2)^-1) + 3.0398064936094906x*(((4//9) + (4//3)*x + x^2)
seed = 4, anti=-0.016330430066172893log(x - (1//2))
seed = 5, anti=0
Error from sparse_fitLinearAlgebra.SingularException(4)
seed = 6, anti=0
seed = 7, anti=0
seed = 8, anti=0
seed = 9, anti=0
[...]
On 9/4/2022 1:21 AM, Nasser M. Abbasi wrote:
On 9/3/2022 11:25 PM, Jeff Barnett wrote:
I would either
give the system a fail because it is unreliable on that problem or I
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 05:03:09 |
Calls: | 10,387 |
Calls today: | 2 |
Files: | 14,061 |
Messages: | 6,416,797 |