Mathcad Toolbox - Contains analogs of functions from Mathcad - Messages
#181 Posted: 10/26/2024 8:25:46 PM
#182 Posted: 10/27/2024 9:34:21 AM
Wrote... It looks strange, maybe I'll add some numbering: #1, #2, #3, ...
Hi. That's the Mathematica default notation for pure function's arguments: https://reference.wolfram.com/language/howto/WorkWithPureFunctions.html
Best regards.
Alvaro.
1 users liked this post
Вячеслав Мезенцев 10/27/2024 1:26:00 PM
#183 Posted: 11/13/2024 3:47:53 AM

Plugin updated.
Changes:
- fixed image handling functions (READRGB(),...);
- the appearance of brackets has been changed;
- added the ability to explicitly specify an insert for MathcadBlock (##, #1, #2, ...).
mathcadblock-explicit-paste.sm (15.97 KiB) downloaded 403 time(s).


Russia ☭ forever, Viacheslav N. Mezentsev
1 users liked this post
sergio 11/13/2024 4:08:00 PM
#184 Posted: 11/13/2024 4:42:40 PM
Expanding the idea of numbering, we can add syntax:
## - take all as sys|mat|line
#i#j - take from i to j
##j - take from 1 to j
#i# - take from i to end
and
#i#js - sys(#i,..,#j)
#i#jm - mat(#i,..,#j)
#i#jl - line(#i,..,#j)
#i#jfun - fun(#i,..,#j)
or
### - insert as parameters: foo(x,y,###) -> foo(x,y,#1,#2,...)
##3# - insert as parameters: foo(x,y,##3#) -> foo(x,y,#1,#2,#3)
## - take all as sys|mat|line
#i#j - take from i to j
##j - take from 1 to j
#i# - take from i to end
and
#i#js - sys(#i,..,#j)
#i#jm - mat(#i,..,#j)
#i#jl - line(#i,..,#j)
#i#jfun - fun(#i,..,#j)
or
### - insert as parameters: foo(x,y,###) -> foo(x,y,#1,#2,...)
##3# - insert as parameters: foo(x,y,##3#) -> foo(x,y,#1,#2,#3)
Russia ☭ forever, Viacheslav N. Mezentsev
#185 Posted: 11/13/2024 11:20:14 PM
I encountered a plot problem with the list version of rkfixed(). Probably this also applies to other ODE-integrators with embedded function assignment.
In the native 2D Plot:
- When plotting a solution function along with a matrix of marker points, then the points won't display
- Yet, when using lspline() directly, both objects plot without problems.
In X-Y Plot:
- When the independent variable has the same name as the solution function (e.g. x(x), then x() is not treated as a function but as the expression x (similar with v(v) or any other name).
- A workaround is to use a variable name different from the function name. Yet this is strange, because in SMath x() and x usually are independent objects.
plotproblem.sm (30.62 KiB) downloaded 409 time(s).
![2024-11-13 17_08_58-SMath Solver - [plotproblem.sm_].png](/en-US/files/Download/da36GC/2024-11-13-17_08_58-SMath-Solver---[plotproblem.sm_].png)
In the native 2D Plot:
- When plotting a solution function along with a matrix of marker points, then the points won't display
- Yet, when using lspline() directly, both objects plot without problems.
In X-Y Plot:
- When the independent variable has the same name as the solution function (e.g. x(x), then x() is not treated as a function but as the expression x (similar with v(v) or any other name).
- A workaround is to use a variable name different from the function name. Yet this is strange, because in SMath x() and x usually are independent objects.
plotproblem.sm (30.62 KiB) downloaded 409 time(s).
![2024-11-13 17_08_58-SMath Solver - [plotproblem.sm_].png](/en-US/files/Download/da36GC/2024-11-13-17_08_58-SMath-Solver---[plotproblem.sm_].png)
Martin KraskaPre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
1 users liked this post
Вячеслав Мезенцев 11/13/2024 11:47:00 PM
#188 Posted: 11/15/2024 5:14:39 AM
Russia ☭ forever, Viacheslav N. Mezentsev
1 users liked this post
Alvaro Diaz Falconi 11/16/2024 8:51:00 AM
#189 Posted: 11/15/2024 4:11:09 PM
Visualization of transformations and matrix norms using implicit plots and automatic scaling of the X-Y plots.

Matrixnormen 2D.sm (28.12 KiB) downloaded 396 time(s).

Matrixnormen 2D.sm (28.12 KiB) downloaded 396 time(s).
Martin KraskaPre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
3 users liked this post
Вячеслав Мезенцев 11/15/2024 4:24:00 PM, ioan92 11/15/2024 9:21:00 PM, Oscar Campo 11/15/2024 5:41:00 PM
#190 Posted: 12/12/2024 4:09:39 AM
I want to add a set of simple examples to the Mathcad block context menu that demonstrate how it works. Can you suggest such examples?
Similar to the X-Y Plot component. In this case, you will be able to fill in not only the input values, but also the description. You can insert arbitrary expressions inside the component.
Imagine that you can formalize the solution to a simple problem. What would you suggest as educational examples?
Similar to the X-Y Plot component. In this case, you will be able to fill in not only the input values, but also the description. You can insert arbitrary expressions inside the component.
Imagine that you can formalize the solution to a simple problem. What would you suggest as educational examples?
Russia ☭ forever, Viacheslav N. Mezentsev
1 users liked this post
Martin Kraska 12/13/2024 8:06:00 PM
#191 Posted: 12/13/2024 5:18:46 PM
WroteImagine that you can formalize the solution to a simple problem. What would you suggest as educational examples?
I suggest a handbook like Martin's one, with examples where the user can reuse the code (Code reusability is the technical expression for when you don't want to say that you are going to copy and paste). Or like Mathcad quicksheets. This is my idea of a clean use of the block for solving high school problems.
BasicHandbook-nsol.pdf (352.52 KiB) downloaded 356 time(s).
BasicHandbook-nsol.sm (327.84 KiB) downloaded 416 time(s).
Best regards.
Alvaro.
5 users liked this post
Вячеслав Мезенцев 12/13/2024 11:41:00 PM, francesco rapuano 12/13/2024 6:43:00 PM, NDTM Amarasekera 12/13/2024 7:02:00 PM, Martin Kraska 12/13/2024 8:06:00 PM, sergio 12/13/2024 9:15:00 PM
#192 Posted: 12/13/2024 8:06:09 PM
I'd like to have such things like nsol in SMath core.
How about embedded assignment, similar to FindRoot? I don't like poking the values out of S. I see that this might reduce flexibility, e.g. in the case of parametrized initial guess.
I tried to demonstrate a generic approach, i.e. you get the variables assigned without having to issue any specific command except for the generic content of the placeholder. It is just a try and fails with single variables but you get the idea.
Of course, one would like to have a solve block without the cryptic generic expression in the placeholder.
Perhaps, such a block could be created from the insert menu with pre-allocated content of the placeholder and with setting it to hidden.
![2024-12-13 13_47_32-SMath Solver - [BasicHandbook-nsol.sm_].png](/en-US/files/Download/Rkunpm/2024-12-13-13_47_32-SMath-Solver---[BasicHandbook-nsol.sm_].png)
BasicHandbook-nsol_Kr.sm (333.12 KiB) downloaded 393 time(s).
How about embedded assignment, similar to FindRoot? I don't like poking the values out of S. I see that this might reduce flexibility, e.g. in the case of parametrized initial guess.
I tried to demonstrate a generic approach, i.e. you get the variables assigned without having to issue any specific command except for the generic content of the placeholder. It is just a try and fails with single variables but you get the idea.
Of course, one would like to have a solve block without the cryptic generic expression in the placeholder.
Perhaps, such a block could be created from the insert menu with pre-allocated content of the placeholder and with setting it to hidden.
![2024-12-13 13_47_32-SMath Solver - [BasicHandbook-nsol.sm_].png](/en-US/files/Download/Rkunpm/2024-12-13-13_47_32-SMath-Solver---[BasicHandbook-nsol.sm_].png)
BasicHandbook-nsol_Kr.sm (333.12 KiB) downloaded 393 time(s).
Martin KraskaPre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
1 users liked this post
Alvaro Diaz Falconi 12/13/2024 10:00:00 PM
#193 Posted: 12/13/2024 10:21:36 PM
Hi Martin. I put "0" as argument because there are no more args. The second could be a vector of options, like this:

or the solved variables. Also, I use "S" because this error, which I imagine that could be corrected, but don't know how hard it could be:

Best regards.
Alvaro.
PD: Notice that x# : transpose(str2num(x#))*diag(U#) or x# : diag(U#)*str2num(x#) if you want to return the answer as column vector, like normal people, returns x# as scalar if length(x#) = 1.

or the solved variables. Also, I use "S" because this error, which I imagine that could be corrected, but don't know how hard it could be:

Best regards.
Alvaro.
PD: Notice that x# : transpose(str2num(x#))*diag(U#) or x# : diag(U#)*str2num(x#) if you want to return the answer as column vector, like normal people, returns x# as scalar if length(x#) = 1.
#194 Posted: 12/14/2024 7:36:10 AM
Wrote... How about embedded assignment, similar to FindRoot? I don't like poking the values out of S. I see that this might reduce flexibility, e.g. in the case of parametrized initial guess
Hi Martin. I think the opposite: the implicit assignment of the names of the variables sought to a solution makes its call very rigid, since many times there is no direct relationship between the variables of the equation and the names of the variables that are intended to be assigned to the solution, as is precisely demonstrated in this case

Another variant among many would be to find a limiting speed and call the result v.lim, even though the variable of the equation is "v".
Best regards.
Alvaro.
#195 Posted: 12/31/2024 12:07:50 AM
4 users liked this post
Oscar Campo 1/1/2025 6:23:00 AM, sergio 12/31/2024 1:47:00 AM, churichuro 12/31/2024 2:12:00 AM, Alvaro Diaz Falconi 1/1/2025 1:20:00 PM
#196 Posted: 8/20/2025 11:31:03 PM
#197 Posted: 8/21/2025 1:22:30 PM




Plugin updated.
Changes:
- find() function added.
MathcadToolbox-find-handbook.sm (303.37 KiB) downloaded 18 time(s).
MathcadToolbox-find-handbook.pdf (183.29 KiB) downloaded 10 time(s).
There are some problems with obtaining the values themselves. Their nature is still unclear. This is the first trial implementation.

Edited 8/21/2025 1:23:20 PM
Russia ☭ forever, Viacheslav N. Mezentsev
#199 Posted: 8/21/2025 5:11:48 PM
The problem is in the delayed evaluation. It is nice if you want to evaluate the solution for multiple configurations with S just storing the task instead of the solution.
It may well be fine to have this behaviour by design, but then we should not get an error message (undefined Ix).
So my proposal is
- if the solution can be found numerically with the data given at processing of the block, then store the data and not the task description.
- if the task has undefined variables other than the solution variables, then just store the task description (as it is done now but don't complain.
If you enforce intermediate evaluation, then there are no restrictions on the variable names any more. The recursivity is broken.
BTW, I'd propose to allow for scalar arguments for the single equation/single variable case.
In case you provide solvers with range specification, my ideas would be to use Davides ternary operators a
If no initial guesses or ranges are given, try to apply a linear solver.

MathcadToolbox-find-handbook_Kr.sm (331.8 KiB) downloaded 18 time(s).

1-2-Maßeinheiten.sm (153.83 KiB) downloaded 16 time(s).
It may well be fine to have this behaviour by design, but then we should not get an error message (undefined Ix).
So my proposal is
- if the solution can be found numerically with the data given at processing of the block, then store the data and not the task description.
- if the task has undefined variables other than the solution variables, then just store the task description (as it is done now but don't complain.
If you enforce intermediate evaluation, then there are no restrictions on the variable names any more. The recursivity is broken.
BTW, I'd propose to allow for scalar arguments for the single equation/single variable case.
In case you provide solvers with range specification, my ideas would be to use Davides ternary operators a
If no initial guesses or ranges are given, try to apply a linear solver.

MathcadToolbox-find-handbook_Kr.sm (331.8 KiB) downloaded 18 time(s).

1-2-Maßeinheiten.sm (153.83 KiB) downloaded 16 time(s).
Edited 8/21/2025 5:12:37 PM
Martin KraskaPre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
#200 Posted: 8/21/2025 6:43:51 PM




Plugin updated.
Changes:
Refactors the `find` function to be more powerful and intuitive, aligning its behavior with user expectations from similar math software.
- The set of variables to be solved is now implicitly determined from all initial guesses (`≈`) provided in the input system. This removes the need to explicitly declare all variables.
- The function signature is now more flexible. Users can either omit the variable list to get all results, or specify which variables they want returned.
- Output variables can be specified either as a flat list (`find(sys, x, y)`) or as a `sys`/`mat` block (`find(sys, sys(x,y))`).
- Introduces `_` as a wildcard argument (`find(sys, _)` or `MathcadBlock -> find(_)`). This provides an elegant way to explicitly request all solved variables, which is particularly useful for integration with `MathcadBlock`.
- The output is now filtered to return only the subset of variables requested by the user, in the specified order.
Available nonlinear solvers: FixedPoint, LevenbergMarquardt, NewtonRaphson, Broyden.
Default solver: "LevenbergMarquardt"
Understanding the Calculation Behavior. A Circular Dependency (Gemini).pdf (87.1 KiB) downloaded 11 time(s).

Edited 8/21/2025 7:02:15 PM
Russia ☭ forever, Viacheslav N. Mezentsev
2 users liked this post
- New Posts
- No New Posts