Mathcad Toolbox

Mathcad Toolbox - Contains analogs of functions from Mathcad - Messages

#181 Posted: 10/26/2024 8:25:46 PM
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

Coming soon...

The ability to explicitly specify the placement of block elements will be added.

It looks strange, maybe I'll add some numbering: #1, #2, #3, ...

MathcadBlock-extended.jpg
Russia ☭ forever, Viacheslav N. Mezentsev
#182 Posted: 10/27/2024 9:34:21 AM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

1,039 likes in 1,703 posts.

Group: User

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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility

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).

mathcadblock-explicit-paste.png

mathcadblock-explicit-ode.png
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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

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)
Russia ☭ forever, Viacheslav N. Mezentsev
#185 Posted: 11/13/2024 11:20:14 PM
Martin Kraska

Martin Kraska

1,259 likes in 2,184 posts.

Group: Moderator

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
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
#186 Posted: 11/14/2024 1:45:31 AM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

1,039 likes in 1,703 posts.

Group: User

A little step further? (And I say little because I'm not the one who has to improve the code) Take #arg as function parameter?

further.png

Best regards.
Alvaro.
1 users liked this post
Вячеслав Мезенцев 11/14/2024 1:54:00 AM
#187 Posted: 11/15/2024 3:34:05 AM
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility

Plugin updated.

Changes:

- MathcadBlock: the syntax for explicit insertion has been extended.

mathcadblock-explicit-paste.jpg
Russia ☭ forever, Viacheslav N. Mezentsev
1 users liked this post
Alvaro Diaz Falconi 11/16/2024 8:51:00 AM
#188 Posted: 11/15/2024 5:14:39 AM
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator



mathcadblock-alnleqsolve.sm (12.12 KiB) downloaded 413 time(s).

mathcadblock-alnleqsolve.png
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
Martin Kraska

Martin Kraska

1,259 likes in 2,184 posts.

Group: Moderator

Visualization of transformations and matrix norms using implicit plots and automatic scaling of the X-Y plots.

Matrixnormen 2D.png
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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

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?
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
Alvaro Diaz Falconi

Alvaro Diaz Falconi

1,039 likes in 1,703 posts.

Group: User

Wrote

Imagine 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
Martin Kraska

Martin Kraska

1,259 likes in 2,184 posts.

Group: Moderator

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
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
Alvaro Diaz Falconi

Alvaro Diaz Falconi

1,039 likes in 1,703 posts.

Group: User

Hi Martin. I put "0" as argument because there are no more args. The second could be a vector of options, like this:

options.png

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:

err.png

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
Alvaro Diaz Falconi

Alvaro Diaz Falconi

1,039 likes in 1,703 posts.

Group: User

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

rel.png

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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility History page
Mathcad Block.sm Mathcad Block. Examples.sm

Plugin updated

Changes:

- Mathcad Block: restored drawing of curly bracket (SS >= 1.3.*).

MathcadBlock-curly-bracket.jpg
Russia ☭ forever, Viacheslav N. Mezentsev
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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility History page Changes AI Assistant

Plugin updated.

Changes:

- CreateMesh() and CreateSpace() added;
- cspline() added;
- lspline() and pspline() fixed.
Russia ☭ forever, Viacheslav N. Mezentsev
#197 Posted: 8/21/2025 1:22:30 PM
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility History page Changes AI Assistant

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.

image.png
Edited 8/21/2025 1:23:20 PM
Russia ☭ forever, Viacheslav N. Mezentsev
#198 Posted: 8/21/2025 2:13:10 PM
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

This effect is called a "classic case of circular dependency"

Never use the same variables for initial approximations and to store results - AI advised me.

image.png
Russia ☭ forever, Viacheslav N. Mezentsev
1 users liked this post
Martin Kraska 8/21/2025 8:59:57 PM
#199 Posted: 8/21/2025 5:11:48 PM
Martin Kraska

Martin Kraska

1,259 likes in 2,184 posts.

Group: Moderator

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.



image.png

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

image.png

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
Вячеслав Мезенцев

Вячеслав Мезенцев

1,485 likes in 1,790 posts.

Group: Moderator

SMath Studio compatibility History page Changes AI Assistant

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).

image.png
Edited 8/21/2025 7:02:15 PM
Russia ☭ forever, Viacheslav N. Mezentsev
2 users liked this post
Alvaro Diaz Falconi 8/21/2025 7:57:42 PM, Martin Kraska 8/21/2025 8:59:43 PM
  • New Posts
  • No New Posts