1 Pages (4 items)
Calculating with tolerances - Messages
#1 Posted: 1/20/2012 6:11:36 PM
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

#2 Posted: 1/20/2012 8:59:22 PM
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!"
#3 Posted: 1/28/2012 8:09:30 PM
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
#4 Posted: 1/29/2012 7:28:21 AM
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