Solve for variable 'a' in a beastly equation (numerical or analytical ok)

1 回表示 (過去 30 日間)
Rory Staunton
Rory Staunton 2012 年 2 月 6 日
Hi all
For reference, I am trying to use equations [3] and [4] in the article found here:
Eq [3]:
d + a/R*(sqrt(a^2-b^2)-a)-a/tan(theta)*(pi/2 - asin(b/a)) = 0
where b = R*cos(theta). I want to rearrange this as an expression a=a(d,R,theta,b) for a as a function of the other variables Then I want to plug that expression for a into the following
Eq[4]:
F = 2*[E/(1-nu^2)]*[d*a - a^2/(2tan(theta))*(pi/2-asin(b/a)-a^3/3R + sqrt(a^2-b^2)*(b/2tan(theta) + a^2-b^2/3R)]
and finally rearrange Eq[4] as an expression E=E(F,d,a,theta,R,b) for E as a function of all the other variables. I have monkeyed around a bit in Matlab and Mathematica but I figured I should consult more knowledgable folks when it comes to solving equations, with which I have little experience in Matlab.
Thanks in advance. Any strategies will be appreciated!

採用された回答

Walter Roberson
Walter Roberson 2012 年 2 月 6 日
E = (5/3) * R * (sin(AA) - (1/2) * sin(3 * AA) + (1/10) * sin(5 * AA)) *
F * (nu + 1) * (nu - 1) * tan(theta)^2 / (b * ((8/3) * (((R - 1/4) *
b * tan(theta) + (3/8) * R) * sin(AA) + ((1/12) * b * tan(theta) -
(1/8) * R) * sin(3 * AA)) * ( - (cos(2 * AA) + 1) * b^2 / (cos(2 *
AA) - 1))^(1/2) * b^2 + ( - 2 * R * b * sin(AA) * asin(sin(AA)) +
(8/3) * R * d * cos(2 * AA) * tan(theta) - (2/3) * R * d * cos(4 *
AA) * tan(theta) - (8/9) * b^4 + pi * R * b * sin(AA) - (1/3) *
( - 2 * asin(sin(AA)) + pi) * R * b * sin(3 * AA) - 2 * R * d *
tan(theta)) * tan(theta)))
when
AA = RootOf(2 * Z * b * R * sin(Z) + R * d * tan(theta) - d * R * tan(theta) * cos(2*Z) + 2 * b * tan(theta) * (-b^2 * (1+cos(2*Z)) / (-1+cos(2*Z)))^(1/2) * sin(Z) - 2 * b^2 * tan(theta) - b * R * pi * sin(Z), Z)
Here, RootOf() is the operator that returns the values, Z, such that the expression inside RootOf() becomes 0. You can probably see by observation that there is no general algebraic solution -- though if theta is 0, the solutions for RootOf() fall out as 0 and pi/2.
AA corresponds to the solution of "a".
If you are using MuPAD as your symbolic engine (as is the case from R2008b), then you are probably going to have to find a numeric solution for AA.
Note: the above expressions might be incorrect if any of the variables are complex numbers. When I did the simplifications, I added the assumption that the variables were real-valued.
  1 件のコメント
Rory Staunton
Rory Staunton 2012 年 2 月 6 日
Hi Walter, thanks!
How did you do this? I'm still trying to comprehend it. Also, I've tried using the equations you provided but I do not know how to implement them properly. If I type your second equation into cmd prompt, it says Z is undefined fn or var. My impression from what you wrote is that RootOf would find Z for me?
Also, if I paste 'RootOf(...)' over each instance of 'AA' in your first eqn and run that in cmd prompt, it complains that the expression is incomplete or incorrect.
My first attempts at using the expressions you provided are probably very naive, but I don't really know how to work with them!
My ultimate goal is to input a vector of F-values and a vector of d-values, along with constants for theta, R, and nu, and get out a vector of E(F,d) values.

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by