gpt4 book ai didi

algorithm - 选择一组对以最小化组的均方根

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:00:19 26 4
gpt4 key购买 nike

简化问题

我有大约 40 个电阻器(所有值都相同 +-5%),我需要选择其中的 12 个以使它们尽可能相似。

解法:我按顺序列出,取连续12个RMS最小的。

实际问题

我有大约 40 个电阻器(所有值都相同 +-5%),我必须选择其中的 12 个,以使这些对的电阻尽可能相似。

注意事项

(R1,R2) 对的电阻为 R1+R2。我不太关心编程语言,但假设我正在寻找 C++ 或 Python 的解决方案,这两种语言是我最熟悉的。

最佳答案

这给出了相当不错的结果(在 MATLAB 中)

a = ones(40,1) + rand(40,1)*0.1-0.05; % The resistors
vec = zeros(40,2); % Initialize matrix
indices = zeros(40,2); % Initialize matrix
a = sort(a); % Sort vector of resistors
for ii = 1:length(a)
vec(ii,:) = [a(ii) a(ii)]; % Assign resistor values to row ii of vec
indices(ii,:) = [ii,ii]; % Corresponding resistor number (index)
for jj = 1:length(a)
if sum(abs((a(ii)+a(jj))-2*mean(a))) < abs(sum(vec(ii,:))-2*mean(a))
vec(ii,:) = [a(ii) a(jj)]; % Check if the new set is better than the
indices(ii,:) = [ii, jj]; % previous, and update vec and indices if true.
end
end
end

[x, idx] = sort(sum(vec')'); % Sort the sum of the pairs
final_list = indices(idx); % The indices of the sorted pairs

这是我绘制时的结果:

enter image description here

关于algorithm - 选择一组对以最小化组的均方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com