Berkeley CSUA MOTD:Entry 37562
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/07/10 [General] UID:1000 Activity:popular
7/10    

2005/5/6-11 [Computer/SW/Languages/C_Cplusplus] UID:37562 Activity:moderate
5/6     (Not a homework question)  You have a horizontal gap of length L and
        \_ bullshit.
           \_ double-bullshit.   I made a paperclip chain and am curious how
              to most easily drape it (and I'm a big nerd).
        a rope/chain/cable with mass per unit length w, and there is vertical
        gravity of acceleration g.  What length of cord should you use to
        bridge the gap to as to minimize the tension at the anchor points?
        \_ A suspension like this is described by a hyperbolic cosine,  the
           least amount of tension is produced when the rope or chain is exactly
           the length of L.  Let me know if you need more proof.  -scottyg
               \- re: hyperbolic cos: also and probably more commonly known as
                  Cantenary arc/arch [like the st. louis object]. you can
                  google from "cantenary" ... somebody probably has the
                  solved integral that gives you a closed form for arc length.
                  this name actually comes from the idea of "hanging chain",
                  so appropos to you underlying physical model. and now lets
                  talk about the feynman sprinkler.
                  \_ And when you can't find the answer, search for
                     "catenary."
           \_ Perhaps you misunderstood.  The gap width is L.  Trying to bridge
              that with a cord onle L long would require infinite tension when
              under gravity.
              \_ it is a simple optimization problem that reduces down to the
                 more string you have, the greater the weight, and therefore the
                 greater the tension.  L is the minimum amount of string one
                 would need to span the gap, therefore it is also the optimized
                 length for minimum tension.  See the equations below for tens-
                 ion, T, as they are correct.  BTW, I have a degree in Physics,
                 and not CS, if that gives me any more credit. -scottyg
                 \_ "assume the horse is a sphere"...  sorry, nope. it doesn't.
              \_ no it wouldn't.
                 \_ assuming an infinite tensile-strength cord, yes it would.
                    Take a reasonably heavy rope or chain and try to pull it
                    to be absolutely straight while not supported in the
                    middle.  You can't do it.
                    \_ but that's not what we're trying to do. you can
                       straighten it by pushing in the middle. in any case
                       the answer is "as straight as you can".
                       \_ What I'm trying to do is find what length of paper
                          clip chain will bridge a gap L with minimum tension.
                          The answer is NOT L, because that has extremely
                          high tension which bends the paper clips all out of
                          shape.  But the answer is not 100L either, because
                          that is way too much extra weight.
                          \_ you don't have to pull the ends to straighten
                             the chain. you can straighten it theoretically
                             without bending.
              \_ Based on what little I remember about CE, scottyg is right.
                 A cable w/ uniform weight per unit length is described as
                 a cantenary.  You need two equations to determine the length,
                 L, of the cable. Assuming that you know the separation between
                 the endpoints (X) and the "sag" (S) (the distance from the
                 horizontal passing through the end points and the lowest point
                 of the cable), you can use the following equations:
                        EQ1.1 The half length, L/2, equation:
                        EQ 1.1 The half length, L/2, equation:
                                y^2 - (L/2)^2 = c^2
                        EQ2.1 The parameter, c, equation:
                        EQ 2.1 The parameter, c, equation:
                                y = c cosh (X/c)
                 Since y = S + c you can simplify to:
                        EQ 1.2: L = 2(2c^2 - 2Sc - S^2)^(1/2)
                        EQ 2.2: S/c + 1 = cosh (X/c)
                 You can use excel or some such to solve for c in EQ 2.2 and
                 then it is simple to substitute into EQ 1.2 to get L. iirc,
                 in most cases it is simpler to just think of the thing as a
                 parabola.
                 then it is simple to substitute into EQ 1.2 to get L.
                 Now that I re-read your question, it seems like you want to
                 minimze S as well as L right? I don't remember enough calc
                 to help you out there, but I think that you probably need
                 to do this by minimizing the tension T at the end points.
                 The equation for T at the end points is:
                        EQ 3.1: T = w(c^2 + (L^2)/4)^(1/2)
                 Good luck!
                 \_ Hmm, what scottyg claims above is that tension T is minimum
                    when the string length L equals to the gap width X.  Now,
                    as L approaches X, S approaches 0.  Using your equations,
                    as X approaches L, S approaches 0.  Using your equations,
                    we get this:
                                limit(L->X) S = 0;
                                limit(X->L) S = 0;

                        EQ 2.2: S/c + 1 = cosh (X/c)
                                limit(L->X) (S/c + 1) = limit(L->X) cosh (X/c)
                                1 = limit(L->X) cosh (X/c)
                                0 = limit(L->X) X/c
                        thus    limit(L->X) c = infinity
                                limit(X->L) (S/c + 1) = limit(X->L) cosh (X/c)
                                1 = limit(X->L) cosh (X/c)
                                0 = limit(X->L) X/c
                        thus    limit(X->L) c = infinity

                        EQ 3.1: T = w(c^2 + (L^2)/4)^(1/2)
                                limit(L->X) T = limit(L->X) (w(c^2 + (L^2)/4)
                                limit(X->L) T = limit(X->L) (w(c^2 + (L^2)/4)
                                                                ^(1/2))
                                              = infinity
                    I don't see how the tension is minimum in this case, using
                    your presumably correct equations.  --- L&S CS major
                    your equations.  --- L&S CS major
                    your presumably correct equations.  So scottyg is wrong.
                    --- L&S CS major
                    \_ I think that what scottyg is getting at is that you
                       have to balance the tension at the end points against
                       the tensile strength of the material that makes up
                       the cable in order to find the min sag and length.
                       \_ Sorry, but this "L is the minimum amount of
                          string one would need to span the gap, therefore
                          it is also the optimized length for minimum
                          tension" seems to contradict that.
                          \_ Okay, I see your point. When I originally
                             posted the equations I was probably wrong
                             about the minimizing the tension at the
                             end points.  Anyway, do you see anything
                             wrong w/ balancing the tensile strength
                             of the material w/ the tension at the
                             end points to get the optimal length
                             and sag?
                             \_ Not at all.  That seems like a very reasonable
                                way to think about it.
2025/07/10 [General] UID:1000 Activity:popular
7/10    

You may also be interested in these entries...
2014/1/14-2/5 [Computer/SW/Languages/C_Cplusplus] UID:54763 Activity:nil
1/14    Why is NULL defined to be "0" in C++ instead of "((void *) 0)" like in
        C?  I have some overloaded functtions where one takes an integer
        parameter and the other a pointer parameter.  When I call it with
        "NULL", the compiler matches it with the integer version instead of
        the pointer version which is a problem.  Other funny effect is that
        sizeof(NULL) is different from sizeof(myPtr).  Thanks.
	...
2013/4/9-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Apps, Computer/SW/Languages/Perl] UID:54650 Activity:nil
4/04    Is there a good way to diff 2 files that consist of columns of
        floating point numbers, such that it only tells me if there's a
        difference if the numbers on a given line differ by at least a given
        ratio?  Say, 1%?
        \_ Use Excel.
           1. Open foo.txt in Excel.  It should convert all numbers to cells in
	...
2013/4/29-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Compilers] UID:54665 Activity:nil
4/29    Why were C and Java designed to require "break;" statements for a
        "case" section to terminate rather than falling-through to the next
        section?  99% of the time poeple want a "case" section to terminate.
        In fact some compilers issue warning if there is no "break;" statement
        in a "case" section.  Why not just design the languages to have
        termination as the default behavior, and provide a "fallthru;"
	...
2012/7/19-11/7 [Computer/SW/Languages/C_Cplusplus] UID:54439 Activity:nil
7/19    In C or C++, how do I write the code of a function with variable
        number of parameters in order to pass the variable parameters to
        another function that also has variable number of parameters?  Thanks.
        \_ The usual way (works on gcc 3.0+, Visual Studio 2005+):
               #define foo(fmt, ...) printf(fmt, ##__VA_ARGS__)
           The cool new way (works on gcc 4.3+):
	...
2011/3/7-4/20 [Computer/SW/Languages/C_Cplusplus] UID:54056 Activity:nil
3/7     I have a C question.  I have the following source code in two identical
        files t.c and t.cpp:
                #include <stdlib.h>
                int main(int argc, char *argv[]) {
                  const char * const * p1;
                  const char * * p2;
	...
2011/2/5-19 [Computer/SW/Languages/C_Cplusplus] UID:54027 Activity:nil
2/4     random C programming/linker fu question.  If I have
        int main() { printf("%s is at this adddr %p\n", "strlen", strlen); }
        and soda's /proc/sys/kernel/randomize_va_space is 2 (eg; on)
        why is strlen (or any other libc fn) at the same address every time?
        \_ I don't pretend to actually know the right answer to this, but
           could it have something to do with shared libraries?
	...
2010/2/12-3/9 [Computer/SW/Languages/C_Cplusplus] UID:53708 Activity:nil
2/12    I need a way to make a really big C++ executable (~200MBs) that does
        nothing.  No static initialization either.  Any ideas?
        \_ static link in lots of libraries?
        \_ #define a   i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0;
           #define b   a a a a a a a a a a
           #define c   b b b b b b b b b b
	...
2009/9/28-10/8 [Computer/SW/Languages/C_Cplusplus] UID:53409 Activity:nil
9/28    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
        Java is #1!!! Followed by C, PHP, C++, Visual Basic, Perl,
        C#, Python, Javascript, then finally Ruby. The good news is
        Pascal is going waaaay back up!
        \_ C is still more popular than C++?  I feel much better about myself
           now.
	...
2009/8/7-14 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Java] UID:53252 Activity:high
8/6     In C one can do "typedef int my_index_t;".  What's the equivalent in
        C#?  Thanks.
        \_ C#? Are you serious? Is this what the class of 2009 learn?
           \_ No.  I have to learn .NET code at work.  I am Class of '93.
           \_ python is what 2009 learns, see the motd thread about recent
              cal courses and languages
	...
2009/7/21-24 [Computer/SW/Languages/Java] UID:53168 Activity:moderate
7/20    For those who care btw, it looks like eclipse is now A Standard Tool
        at UCB ugrad cs, probably replaced emacs.  Furthermore, people get
        angry at seeing Makefiles, (since eclispe takes care of that).  I
        guess it's just a sign of the times.
        \_ The more people at my work use eclipse the less the code is
           managable in emacs.  I'm not sure which application's fault
	...