Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by JimmyCushnie · Aug 15, 2017 at 03:36 AM · c#math

How can I numerically solve an equation in Unity c#?

Specifically, I need to solve for x given values of y, a, u and n using this equation:

y = sqrt(a^3 / u) * (x - n * sin(x))

But I haven't even completed high school and I have no idea where to start. I found something called the Newton-Raphson method that seems to do what I want. Can I translate that method into C#? Is there a more performance-mindful way to do it?

Any help is super appreciated... I've been working on this for days and I still have no idea what I'm doing...

Edit: to future googlers, u/Romestus on reddit made this awesome script that solves the equation using Newton's method. I hope it can help you too!

Comment
Add comment · Show 3
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image bolt5 · Aug 15, 2017 at 06:00 AM -1
Share

You can check the $$anonymous$$athf Class

avatar image JimmyCushnie bolt5 · Aug 15, 2017 at 09:57 PM 0
Share

nothing there

avatar image elenzil JimmyCushnie · Aug 15, 2017 at 10:09 PM 0
Share

yeah - mathf is comparatively primitive stuff like abs(), sin(), etc. nothing remotely like this.

2 Replies

· Add your reply
  • Sort: 
avatar image
2

Answer by elenzil · Aug 15, 2017 at 06:45 PM

newton-raphson is what i was going to suggest.

i believe for NR you need the derivative of the function as well. that would be a second function you calculate by hand on paper. this is a moderately complex function to take the derivative of!

fortunately it looks like it can be simplified a bit.

let's replace all of sqrt(a^3/u) by a constant k.

so now

 y = k * (x - n * sin(x)).
 
 y = (k * x)  - (k * n * sin(x)).
 
 y' = [(k * x)  - (k * n * sin(x))]'.
 
 y' = (k * x)' - (k * n * sin(x))'.
 
 y' = k - k * n * cos(x).
 
 y' = k * (1 - n * cos(x)).
 
 ^----- that's your derivative, where k = sqrt(a^3/u).

Then you could either implement NR yourself, or if you google C# Newton Raphson it looks like there's a fair number of examples.

Comment
Add comment · Show 5 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image JimmyCushnie · Aug 15, 2017 at 07:48 PM 0
Share

Thank you. I see wolfram alpha can also calculate derivatives for me.

if you google C# Newton Raphson it looks like there's a fair number of examples.

None that I can understand and none that I can figure out how to get working in Unity. I think I'm going to try my own implementation, but I don't have high hopes...

avatar image elenzil JimmyCushnie · Aug 16, 2017 at 04:32 AM 0
Share

i was thinking about this a bit more, and realized that with this equation, depending on the values of n, you're going to have either 1, 2, 3, 4, or arbitrarily many corresponding values of x. the value of k (the sqrt) doesn't matter in that respect.

for example, here's the graph with n = 10. you can see that for y = 0, there's 7 different values of x. http://imgur.com/a/Tk$$anonymous$$3o

in that situation, newton-raphson or any solver which produces a single value is going to give you results which might not be what you want. a solver which yields all the intersections of Y with the function might be what you want, but those are harder to come by. Newton-Raphson will return an approximation of one of the intersection points, depending on the initial value you seed it with.

are you sure you know what you want ?

avatar image JimmyCushnie elenzil · Aug 16, 2017 at 06:53 AM 0
Share

Yeah, I forgot to mention it in the OP, but the value of n is always between 0 and 1.

I'm good now though. u/Romestus from reddit made a script for me that does exactly what I want!

Show more comments
avatar image
0

Answer by M-G-Production · Aug 16, 2017 at 05:16 PM

I would probably look like that:

 y = Mathf.Sqrt(Mathf.Pow(a, 3)/u) * (x - n * Mathf.Sin(x))
Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image elenzil · Aug 16, 2017 at 05:38 PM 0
Share

the question is not how to express the formula in C#,

it's how to solve for X given Y.

avatar image M-G-Production elenzil · Aug 16, 2017 at 07:56 PM 0
Share

Ohh! Sorry :S

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

372 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity Infinity Math Result 0 Answers

Radius too long 1 Answer

Instantiate and object around the perimeter of an area inside of an area. (C#) 1 Answer

Rotation per position 0 Answers

Sin function returns NaN 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges