[Custom Functions] Substitution in expressions with dummy variables (diff, sum etc.)

[Custom Functions] Substitution in expressions with dummy variables (diff, sum etc.) - Messaggi

#1 Pubblicato: 26/07/2023 16:03:12
Martin Kraska

Martin Kraska

1.361 apprezzamenti in 2.275 post.

Gruppo: Moderator

Consider the following example. Substitution using at() is applied to a symbolic expression. Once f(t) is not defined, the derivative can't be calculated. It is nice, that t is not just replaced by 0 but the result anyways is not correct. The return value should be the unmodified input expression if evaluation/simplification fails.

You see the problem if you evaluate input and return value for a particular f(x), the results aren't equal.

Blatt20.png
Blatt20.sm (5,69 KiB) scaricato 1677 volta(e).
Technische Mechanik mit SMath Studio: https://link.springer.com/book/10.1007/978-3-658-50592-9
#2 Pubblicato: 26/07/2023 17:52:02
Alvaro

Alvaro

1.139 apprezzamenti in 1.805 post.

Gruppo: User

I don't know what the intention of the author of the at() function is, but what I can observe in other CAS is that there are always something like two versions for the substitution, in which perhaps one maybe returns the expected results.

Clipboard02.png

Clipboard01.png

My opinion is that the only procedure about which it can be said that the substitution is correct or not is the limit operation

Clipboard03.png

Maybe Maxima can redefine at() using limits.

Best regards.
Alvaro.
1 utenti hanno apprezzato questo post
Martin Kraska 26/07/2023 18:13:00
#3 Pubblicato: 26/07/2023 18:10:09
Martin Kraska

Martin Kraska

1.361 apprezzamenti in 2.275 post.

Gruppo: Moderator

Whatever I do on Maxima side, if the result contains a symbolic non-simplificable substitution (can happen with laplace transforms) then I'd like to display that using the at() function with it's nice operator form to display the result. Yet, as of now, the function isn't robust enough for this.

In the example below you see that the return value from Maxima contains an expression with at(), which is removed on SMath postprocessing side even if optimization=none.
It is part of the test suite for Maxima in the interactive handbook or on github.

2023-07-26 23_05_43-SMath Solver - [Plugin Maxima Test Suite.sm_].png

The limit function, by the way is another construction site. Currently, it is not possible to use the single-sided limits. We have that on our todo list.
Technische Mechanik mit SMath Studio: https://link.springer.com/book/10.1007/978-3-658-50592-9
1 utenti hanno apprezzato questo post
Alvaro 26/07/2023 22:13:00
#4 Pubblicato: 27/07/2023 04:47:43
Davide Carpi

Davide Carpi

1.443 apprezzamenti in 2.936 post.

Gruppo: Moderator

Hi Martin,

I think I can handle it plugin-side, I'll look into it ASAP.
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
1 utenti hanno apprezzato questo post
sergio 27/07/2023 08:19:00
#5 Pubblicato: 27/07/2023 13:11:57
Jean Giraud

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: User

Wrote

You see the problem if you evaluate input and return value for a particular f(x), the results aren't equal.


Pretty obvious that f(x):= sin(0.5*x)
evaluation t=0 will not be same.
Vectorize over t[0,0.125..pi]
#6 Pubblicato: 28/07/2023 12:48:23
Jean Giraud

Jean Giraud

983 apprezzamenti in 6.866 post.

Gruppo: User

By same token of diff at(2)
1. 1rst derivative of erf(x) is the integrand.
that you derive D(n,x) at will, range/vectorize.
2. Derivative of Gamma(x) from infinitesimal analysis.
  • Nuovi post
  • Nessun nuovo post