Comments (6)
Thanks for the detailed explanation @jonniedie. Let me propose to close this issue (feel free to do it), and since this discussion belongs to TaylorModels, continue it there.
from taylorseries.jl.
Thanks for opening this issue.
The reason we have <:Number
is because Taylor series are naturally defined over the complexes, where the radius of convergence or analytic functions are properly defined; if you like, this is mathematical convenience. Once said this, there are cases where to have it <:Real
seems convenient.
Regarding Taylor models, your point is well taken a probably they should be <:Real
. Taylor models are defined for one (real) variable as a (real) Taylor expansion around x0
in a domain D, plus a remainder, which is an interval that rigorously bounds the true (mathematical) function in D. I haven't thought about the extension to complexes, but I guess it would need to have a "complex remainder", i.e. some sort of (two dimensional) interval box. Have you tried to use TaylorModelN
with two variables for your application?
from taylorseries.jl.
Ah, that makes sense. I probably should have opened this over at TaylorModels.
As for my use case, I have a function that takes one real input (frequency) and returns two real outputs (phase and gain of the frequency response of a given linear system). The need for a Complex{<:TaylorModel1}
is just to perform intermediate calculations. I could probably make my own version of Complex
with only the arithmetic I need defined (should just be +
, -
, *
, /
, ^
, abs
, real
, and imag
), I was just hoping to avoid that.
from taylorseries.jl.
Thanks for the explanation!
Do the independent variable in your (complex) expansion depends on the same real parameter? Perhaps combining two TaylorModel1
s avoids redefining a bunch of functions...
from taylorseries.jl.
To be honest, I'm still trying to learn how Taylor models fit in with interval methods, so I'm not 100% sure what I need yet. To give you a little more detail on what I'm trying to do:
I have a rational polynomial function G(s) = n(s) / d(s)
where n(s)
and d(s)
are polynomial functions of s
. The coefficients of these polynomials have uncertain parameters, which are represented by Interval
s. For a given (real) value ω
, I would like to evaluate the response G(ω*im)
and get the argument and magnitude of the resulting complex number.
When I tried evaluating this directly using Interval
s, the resulting bounds were too wide. @mforets recommended I give Taylor models a try, which is when I noticed Complex{<:TaylorModel}
s wouldn't work because Complex
requires <:Real
parameters.
from taylorseries.jl.
So I suppose we would have multiple parameters; one for each uncertain coefficient of n(s)
and d(s)
.
from taylorseries.jl.
Related Issues (20)
- Implementation for log1p? HOT 3
- Implement cospi and sinpi HOT 6
- `x^(3/4)` fails when x==0 but not when 0 \in x HOT 5
- Include offset in struct definition HOT 5
- Compatibility with Multi-Threading HOT 3
- Broaden the applicability of `NumberNotSeries`
- Address ordering for nested `Taylor1`s
- Add Aqua tests
- Can't figure out how to create multivariate approximation HOT 7
- Violation of the (informal) `Number` interface HOT 7
- Integrate is not increasing the order of the underlying Taylor1 HOT 1
- pFq Not compatible with TaylorSeries package HOT 17
- Multivariate Taylor expansion with HypergeometricFunctions HOT 6
- pfq with TaylorN HOT 1
- ERROR: MethodError: no method matching iterate(::Type{HypergeometricFunctions.ℕ₀})
- Invalidation HOT 3
- convert TaylorN object into Num HOT 2
- Bug in Taylor1 constructor for mixtures HOT 1
- What was breaking in 0.16 and 0.17 ? HOT 7
- Wrong method of evaluate
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taylorseries.jl.