I have a curve that is defined as f[x] and what I'm attempting to do is to divide the curve into equal straight lengths for a number of segments of my choosing that I've defined as nSeg.
I've created a sheet that can work through and determine the (x,y) co-ordinates for each segment, but I'm having to manually manipulate the equations to create a single equation for Mathematica to find the roots for.
The straight length of the curve I've defined as;
chordL = Table[
Sqrt[(Subscript[x, i + 1] - Subscript[x,i])^2 +
(f[Subscript[x, i + 1]] - f[Subscript[x, i]])^2
], {i, 1, nSeg}
]
This creates a list of equations for the length of each segment. What I would like to do is make each part of the list equal to each other so that I can feed this into FindRoot
later in the sheet so that if I decide to change the number of segments from 8 to 10, the sheet can be refreshed from a single variable.
FindRoot[*combined equations*, {Subscript[x, 2], 1}, {Subscript[x, 3], 2}]
The above is an example of how I'm currently doing it and it means I've a sheet for each value of nSeg, which isn't a smart way to work and I'm manually defining which variables to solve independently of the value of nSeg, even though the first and last co-ordinate will always be known.
I'm quite new to Mathematica and would really appreciate a nudge in the right direction to combine the equations in the first part to give the equations to solve in FindRoot
(which I'm using instead of Solve
for speed) in a flexible manner, and also increment the number of variables to solve given that x1 will always be 0 and x(nSeg+1) will always be known too as these are the start and end points of the curve which are defined by the input at the beginning of the sheet.
chordL={eq1,eq2,eq3,eq4}
you can simply doApply[Equal, {eq1, eq2, eq3, eq4}]
. $\endgroup$