- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我有一个函数,它接受四个数字参数并生成一个数字参数。
f(w,x,y,z) --> A
如果我有函数 f
和目标结果 A
,是否有迭代方法来发现参数 w,x,y,z
产生给定数字 A
?
如果有帮助,我的函数 f
是一个五次贝塞尔曲线,其中确定了大部分参数。我只分离了满足值 A
所需的这四个。
Q(t)=R(1−t)^5+5S(1−t)^4*t+10T(1−t)^3*t^2+10U(1−t)^2*t^3+5V(1−t)t^4+Wt^5
R,S,T,U,V,W
是向量,其中 R
和 W
是已知的,我只分离了一个每个 S,T,U,V
中随参数变化的元素。
最佳答案
方程的解集 f(w,x,y,z)=A
(其中所有 w
、 x
、 y
、 z
和 A
都是标量)通常是 4 维空间中的 3 维流形(表面) R^4
的 (w,x,y,z)
.即,解决方案大量不唯一。
现在,如果f
对于计算它的导数来说足够简单,你可以使用 Newton's method找到a根:梯度是函数变化最快的方向,所以你去那里。
具体来说,让X_0=(w_0,x_0,y_0,z_0)
是您对解决方案的初始近似值并让G=f'(X_0)
是 X_0
处的梯度.然后 f(X_0+h)=f(X_0)+(G,h)+O(|h|^2)
(其中 (a,b)
是点积)。让h=a*G
,并求解 A=f(X_0)+a*|G|^2
得到a=(A-f(X_0))/|G|^2
(如果 G=0
,更改 X_0
)和 X_1=X_0+a*G
.如果f(X_1)
足够接近 A
,你就完成了,否则继续计算 f'(X_1)
&c.
如果您无法计算 f'
,您可以使用许多其他方法。
关于algorithm - 我有一个函数 f(w,x,y,z) 和一个目标值 A,我如何才能发现产生 A 的 w,x,y,z 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18002261/
我是一名优秀的程序员,十分优秀!