1 Pages (4 items)
Calculating with tolerances - Messages
As this is my first post I want to take the chance to thank Andrey for providing such an promising tool. Until now I spent a lot of time to evaluate how I can use it for my engineering work.
Calculating with tolerances is one of my key topics.
I found the sys-operator which looks very convenient. I perefer this against the +- operator as I also want to include the nominal value and not only min and max.
I am missing an efficient solution how to get out min, max and nominal values of the result system. If the lenght of the system is know I can convert the system to a matrix by using a for-loop. But usually the lenght is unknown and hard to figure out. Currently I use a work-around by converting the result system with "num2str" and counting the seperators. This works, but is making large worksheet slow.
There is one more limitation I want to bring up here. If I use the same variable multiple times in one equation the results might be wrong. This is because how it works. There is also a difference if symbolic or numeric calculation is used. Numeric seems to be more useful for this job. Any ideas how to get rid of this limitation? I think it's challanging.
Calculating with tolerances would be fantastic feature. Any input is highly appreciated.
Best Regards
Dieter

Calculating with tolerances is one of my key topics.
I found the sys-operator which looks very convenient. I perefer this against the +- operator as I also want to include the nominal value and not only min and max.
I am missing an efficient solution how to get out min, max and nominal values of the result system. If the lenght of the system is know I can convert the system to a matrix by using a for-loop. But usually the lenght is unknown and hard to figure out. Currently I use a work-around by converting the result system with "num2str" and counting the seperators. This works, but is making large worksheet slow.
There is one more limitation I want to bring up here. If I use the same variable multiple times in one equation the results might be wrong. This is because how it works. There is also a difference if symbolic or numeric calculation is used. Numeric seems to be more useful for this job. Any ideas how to get rid of this limitation? I think it's challanging.
Calculating with tolerances would be fantastic feature. Any input is highly appreciated.
Best Regards
Dieter

Hello,
Just to join you and to continue discussion about sys() operator, function. This operator is quite a mystery for me. I just used for granted that this operator will make the operation using all the values in the sys() combining each of them. For instance:
[MATH=eng]R1←sys(5,10,15,3,1)[/MATH] [MATH=eng]R2←sys(7,8,9,3,1)[/MATH]
[MATH=eng]R←R1+R2[/MATH] [MATH=eng]R=sys(12,17,22,13,18,23,14,19,24,9,1)[/MATH]
So far so good. Three values in R1, three values in R2 - gives nine values in R. Strange thing is that although you can reach the individual element of sys() like a vector element
[MATH=eng]el(R,2)=17[/MATH] [MATH=eng]el(R,9)=24[/MATH]
you can not use any vector/matrix operator like length(), sort(), min(), max() etc - as you pointed out. However, you can make operations using scalars and vectors with sys() making some exotic calculations.
Your examples adds another questions about sys(). If we used
[MATH=eng]R←1/{1/R1+1/R2}[/MATH]
we would expect again nine values, but depending on Optimization applied or by using eval() we might be a bit surprised. Optimization-numeric,none will give us nine values
[MATH=eng]R=sys(2.9167,4.1176,4.7727,3.0769,4.4444,5.2174,3.2143,4.7368,5.625,9,1)[/MATH]
But with symbolic optimization the number of values are far greater than nine - not presented here. There are actually 81 values. Why? There is because the above expression is transformed into:
[MATH=eng]R—{R2*R1}/{R2+R1}[/MATH]
The nominator will give you 9 values, the denumerator will give you also 9 values. Every value of nominator will devide with every number of denumerator which will give you those 81 numbers. Now, if we get back to the original expression:
[MATH=eng]R←1/{1/R1+1/R2}[/MATH]
we could see how we get 9 values. Each of the Reciprocal of R1 and R2 will give us sys() with 3 elements. Sum of them will give us 9 elements. Reciprocal of this will give us also 9 elements.
I do not know if this behavior has any sense at all. The most logical thing for me is that in any case there must be only 9 values. We have two sys() variables with 3 values each. Any expression using these two variables only should give 9 values. I might be wrong about it, of course.
Any other comments or suggestions?
Regards,
Radovan
Just to join you and to continue discussion about sys() operator, function. This operator is quite a mystery for me. I just used for granted that this operator will make the operation using all the values in the sys() combining each of them. For instance:
[MATH=eng]R1←sys(5,10,15,3,1)[/MATH] [MATH=eng]R2←sys(7,8,9,3,1)[/MATH]
[MATH=eng]R←R1+R2[/MATH] [MATH=eng]R=sys(12,17,22,13,18,23,14,19,24,9,1)[/MATH]
So far so good. Three values in R1, three values in R2 - gives nine values in R. Strange thing is that although you can reach the individual element of sys() like a vector element
[MATH=eng]el(R,2)=17[/MATH] [MATH=eng]el(R,9)=24[/MATH]
you can not use any vector/matrix operator like length(), sort(), min(), max() etc - as you pointed out. However, you can make operations using scalars and vectors with sys() making some exotic calculations.
Your examples adds another questions about sys(). If we used
[MATH=eng]R←1/{1/R1+1/R2}[/MATH]
we would expect again nine values, but depending on Optimization applied or by using eval() we might be a bit surprised. Optimization-numeric,none will give us nine values
[MATH=eng]R=sys(2.9167,4.1176,4.7727,3.0769,4.4444,5.2174,3.2143,4.7368,5.625,9,1)[/MATH]
But with symbolic optimization the number of values are far greater than nine - not presented here. There are actually 81 values. Why? There is because the above expression is transformed into:
[MATH=eng]R—{R2*R1}/{R2+R1}[/MATH]
The nominator will give you 9 values, the denumerator will give you also 9 values. Every value of nominator will devide with every number of denumerator which will give you those 81 numbers. Now, if we get back to the original expression:
[MATH=eng]R←1/{1/R1+1/R2}[/MATH]
we could see how we get 9 values. Each of the Reciprocal of R1 and R2 will give us sys() with 3 elements. Sum of them will give us 9 elements. Reciprocal of this will give us also 9 elements.
I do not know if this behavior has any sense at all. The most logical thing for me is that in any case there must be only 9 values. We have two sys() variables with 3 values each. Any expression using these two variables only should give 9 values. I might be wrong about it, of course.
Any other comments or suggestions?
Regards,
Radovan
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
Hello,
Can we replicate with SMath Studio the calculations shown here using Mathcad:
http://www.imakenews.com/ptcexpress/e_article001588177.cfm?x=bgg6yfn,b3jsqcsB,w
Thank you,
Basile
Can we replicate with SMath Studio the calculations shown here using Mathcad:
http://www.imakenews.com/ptcexpress/e_article001588177.cfm?x=bgg6yfn,b3jsqcsB,w
Thank you,
Basile
Hello Basile,
Here is one of the solutions:

Regards,
Radovan
Here is one of the solutions:

Regards,
Radovan
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
1 Pages (4 items)
- New Posts
- No New Posts