日期:2014-05-18 浏览次数:20711 次
double x1 = Math.Sqrt(Math.Pow(1000.0/848.0-1.89, 2) + Math.Pow(1160.0/848.0, 2)); double y1 = Math.PI - Math.Asin(Math.Abs(1160.0/848.0/x)); 还有 double x2 = -Math.Sqrt(Math.Pow(1000.0/848.0-1.89, 2) + Math.Pow(1160.0/848.0, 2)); double y2 = 2 * Math.PI - Math.Asin(Math.Abs(1160.0/848.0/x));
------解决方案--------------------
848(x·cos(y) + 1.89) = 1000
848·x·sin(y) = 1160
==>
x·cos(y) = - 602.72 / 848
x·sin(y) = + 1160.00 / 848
令
a = - 602.72 / 848
b = + 1160.00 / 848
则有:
x·cos(y) = a
x·sin(y) = b
==>
x^2 · (cos(y))^2 + x^2 · (sin(y))^2 = a^2 + b^2
==>
x^2 = a^2 + b^2
==> x = +/- sqrt(a^2 + b^2)
这样就得到x的正负两个值
然后求y:
1. 当x取正值时:
cos(y) < 0
sin(y) > 0
由此可知此时y在第二象限 ( Pi/2 < y < Pi )
2. 当x取负值时:
cos(y) > 0
sin(y) < 0
由此可知此时y在第四象限 ( 3·Pi/2 < y < 2·Pi )
用 arc sin 或者 arc cos (sin / cos 的反函数) 可以求得y值
注意,在数学上来讲,求得的不应该是一个y值,y应该是一个数列
这个数列以 (1)arc sin 或者 arc cos求得的y值, (2)以及此值以2Pi为周期获得的其它值 构成
具体的数值运算语句见2楼。