Message Boards Message Boards

0
|
3439 Views
|
8 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Cannot fill table inside manipulate structure

Posted 2 years ago

I would like to write to the manipulate window the three variables span, Rw, H. I'm unable to craft the replace rules to bring out span and Rw beside H. Any hint would be appreciated.

POSTED BY: Gerald Proteau
8 Replies

One small step ...

Manipulate[
 TableForm@
  Table[{{span, Rw}, 
    H /. FindRoot[{(2 (H/Rw) Sinh[span Rw/(2 H)] - span - (span slacdataStrain[[i]]/100))/Ac},
{H, iTen/100 rts/2}]}, {i, 32}],
{span, 500, 1500, 100},
{Rw, 0.5, 2.5, 0.1},
SaveDefinitions -> True
]

Robert

POSTED BY: Robert Nowak
Posted 2 years ago

Thanks for the quick reply.

POSTED BY: Gerald Proteau
Posted 2 years ago

I see you have removed the module, which simplifies this task a great deal. The H/. will clean up the single output from the solver, but what If there were more than one equation being solved simultaneously. I don't understand the syntax required to remove the temporary variables and the -> from this list.

{Hi$8893 -> 8532.225243725225`, Hiol$8893 -> 4936.849236413657`, 
 Hiil$8893 -> 3595.3760073115686`, Hc$8893 -> 7579.292471374861`, 
 Hcol$8893 -> 3349.2234357010298`}
POSTED BY: Gerald Proteau
Posted 2 years ago

Hi Gerald,

Here is one way

Last @@@ {Hi$8893 -> 8532.225243725225`, 
  Hiol$8893 -> 4936.849236413657`, Hiil$8893 -> 3595.3760073115686`, 
  Hc$8893 -> 7579.292471374861`, Hcol$8893 -> 3349.2234357010298`}
(* {8532.23, 4936.85, 3595.38, 7579.29, 3349.22} *)
POSTED BY: Rohit Namjoshi

Hi, unfortunately things are mixed up a little bit.

Your assignment of H=rts/10; which is not used in your code by the way, in deed requires to use Module to protect the other H from FindRoot at least for a clean solution.

I would suggest this code:

Manipulate[
 TableForm@
  Table[{{span, Rw}, 
    Module[{H}, 
     H /. Quiet@
       FindRoot[{(2 (H/Rw) Sinh[span Rw/(2 H)] - span - (span slacdataStrain[[i]]/100))/Ac},
{H,iTen/100 rts/2}]]}, {i, 32}],
{span, 500, 1500, 100},
{Rw, 0.5, 2.5, 0.1},
SaveDefinitions -> True]

Many Mathematica functions return list or replacement rules aka substitutions.

If you need the "naked" values you usually perform the substitution by means of the /. operator.

{x, y} /. {x -> 3, y -> 5}
x /. {x -> 3, y -> 5}
Sqrt[x^2 + y^2] /. {x -> 3, y -> 5}


Out[18]= {3, 5}

Out[19]= 3

Out[20]= Sqrt[34]

I personally would avoid Last@@@{x -> 3, y -> 5} at least in this case, Values[{x -> 3, y -> 5}] or Values@{x -> 3, y -> 5} would do the same job, again I would avoid it.

Robert

POSTED BY: Robert Nowak
Posted 2 years ago

Thanks, Robert, on my machine the code you posted generates this out. I am running by the way the home edition of Mathematica, not sure if that makes any difference.

TableForm[{{{1000, 1.232}, 
ReplaceAll[H$9840, 
FindRoot[{(
       2 (H$9840/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9840))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9840, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9849, 
FindRoot[{(
       2 (H$9849/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9849))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9849, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9858, 
FindRoot[{(
       2 (H$9858/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9858))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9858, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9859, 
FindRoot[{(
       2 (H$9859/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9859))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9859, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9860, 
FindRoot[{(
       2 (H$9860/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9860))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9860, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9861, 
FindRoot[{(
       2 (H$9861/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9861))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9861, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9862, 
FindRoot[{(
       2 (H$9862/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9862))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9862, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9863, 
FindRoot[{(
       2 (H$9863/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9863))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9863, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9864, 
FindRoot[{(
       2 (H$9864/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9864))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9864, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9865, 
FindRoot[{(
       2 (H$9865/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9865))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9865, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9866, 
FindRoot[{(
       2 (H$9866/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9866))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9866, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9867, 
FindRoot[{(
       2 (H$9867/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9867))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9867, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9868, 
FindRoot[{(
       2 (H$9868/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9868))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9868, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9869, 
FindRoot[{(
       2 (H$9869/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9869))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9869, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9870, 
FindRoot[{(
       2 (H$9870/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9870))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9870, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9871, 
FindRoot[{(
       2 (H$9871/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9871))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9871, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9872, 
FindRoot[{(
       2 (H$9872/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9872))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9872, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9873, 
FindRoot[{(
       2 (H$9873/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9873))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9873, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9874, 
FindRoot[{(
       2 (H$9874/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9874))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9874, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9875, 
FindRoot[{(
       2 (H$9875/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9875))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9875, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9876, 
FindRoot[{(
       2 (H$9876/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9876))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9876, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9877, 
FindRoot[{(
       2 (H$9877/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9877))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9877, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9878, 
FindRoot[{(
       2 (H$9878/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9878))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9878, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9879, 
FindRoot[{(
       2 (H$9879/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9879))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9879, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9880, 
FindRoot[{(
       2 (H$9880/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9880))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9880, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9881, 
FindRoot[{(
       2 (H$9881/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9881))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9881, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9882, 
FindRoot[{(
       2 (H$9882/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9882))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9882, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9883, 
FindRoot[{(
       2 (H$9883/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9883))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9883, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9884, 
FindRoot[{(
       2 (H$9884/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9884))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9884, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9885, 
FindRoot[{(
       2 (H$9885/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9885))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9885, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9886, 
FindRoot[{(
       2 (H$9886/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9886))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9886, (iTen/100) (rts/2)}]]}, {{1000, 1.232}, 
ReplaceAll[H$9887, 
FindRoot[{(
       2 (H$9887/Rw$$) Sinh[
         span$$ (Rw$$/(2 H$9887))] - span$$ - span$$ (
        Part[slacdataStrain, i]/100))/Ac}, {
     H$9887, (iTen/100) (rts/2)}]]}}]
POSTED BY: Gerald Proteau

Sorry, ...

Maybe you need to restart the kernel.

Try running the code with a fresh started session no other input before.

Might use ClearAll["Global`*"] to clear all variables/symbols.

Try removing SaveDefinitions -> True from Manipulate.

Robert

POSTED BY: Robert Nowak
Posted 2 years ago

Moving the ttab variable above the module command did the trick. Here is an image of the code, its part of a much larger file I'm working on and I did not want to provide the entire file. The //. can be replace by /. The output is shown below the code. Thanks,

G

My code output

POSTED BY: Gerald Proteau
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract