Tag: 数学优化

有没有办法调整这个非线性方程组

过去两天我一直在解决这个问题但没有成功。 说我们有这个系统: 在以下情况下有无数的解决方案: 为了获得角度Theta的值,我使用这个公式: 我得到的值是正确的,但仅限于某些点,因为系统不可解决。 这是它的样子: 红色曲线表示“必须”值,蓝色曲线表示我实际得到的值。 在绘制总和的值之后: 这是我得到的: 正如你可以看到它的正弦曲线,这似乎影响了角度的“必须”值。 为了模拟这个,我一直在使用这个程序: #include #include int main (){ float xin =0; float yin =0; float zin =0; float A =0; float B =0; float C =0; float angle =0; float outangle =0 ; float angledeg =0; while (angledeg <=(360*3)) { angle = angledeg * M_PI/180; xin = […]

优化查找复数作为输入

我想知道是否有一个C / C ++库或Matlab代码技术来使用最小化求解器来确定实数和复数。 这是一个代码片段,显示了我想要做的事情。 例如,假设我知道Utilde ,但不知道x和U变量。 在给定的Utilde ,我想使用优化( fminsearch )来确定x和U 请注意, Utilde是一个复数。 x = 1.5; U = 50 + 1i*25; x0 = [1 20]; % starting values Utilde = U * (1 / exp(2 * x)) * exp( 1i * 2 * x); xout = fminsearch(@(v)optim(v, Utilde), x0); function diff = optim(v, Utilde) x […]

确定是否在整数数据类型中设置位的最快方法

我有一个方法,根据某些特定的算法计算哈希值。 uint8_t cal_hash(uint64_t _in_data) { uint8_t hash; // algorithm // bit at hash[0] = XOR of some specific bits in _in_data // repeat above statement for other indexed bits of hash return hash; } 我想知道什么是最有效的访问方式,并在整数数据类型中设置相应的位。 我已经尝试过类似的东西 (((x) & (1<<(n)))?1:0) 确定任何索引处的位是1还是0。 有什么比这更好的?

如何在C中连接两个整数

Stack Overflow已经用许多其他语言回答了这个问题,但不是C.所以我想我会问,因为我有同样的问题。 如何在C中连接两个整数? 例: x = 11; y = 11; 我想z如下: z = 1111; 其他示例尝试使用字符串执行此操作。 没有字符串的方法是什么? 我正在寻找一种在C中执行此操作的有效方法,因为在我的特定用法中,这将成为代码的时间关键部分。 提前致谢!

这是计算nCr的更好方法

方法1: C(n,r)= n!/(nr)!r! 方法2: 在wilf的“ Combinatorial Algorithms ”一书中,我发现了这个: C(n,r)可写为C(n-1,r) + C(n-1,r-1) 。 例如 C(7,4) = C(6,4) + C(6,3) = C(5,4) + C(5,3) + C(5,3) + C(5,2) . . . . . . . . After solving = C(4,4) + C(4,1) + 3*C(3,3) + 3*C(3,1) + 6*C(2,1) + 6*C(2,2) 如您所见,最终解决方案不需要任何乘法。 在每种formsC(n,r)中,n == r或r == 1。 这是我实现的示例代码: […]