微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找到关于 R 平方的两个常数......耗时

如何解决找到关于 R 平方的两个常数......耗时

我已经成功编写了一个加载 XLS 文件值的脚本。原始数据包括刚度值、频率和温度。

我创建了一个 for 循环来查找 2 个常量(x1 和 x2),我需要能够叠加数据。

这可行,但需要很多时间。

代码大致如下:

oldRsqr = 0;
x1_found = 0;
x2_found = 0;

for i = 0:0.1:10000
 for j = 0:0.1:10000

x1 = i;
x2 = j;

wanted_value = -x1*(T_T-T_ref)./(x2+(T_T-T_ref)

ReqT = exp(wanted_value(:,1));
ReqCalc = ReqT.*Req_tot;
Rsqr = corr(log(ReqCalc),log(ForceIndata))

if Rsqr > oldRsqr
Rsqr = oldRsqr;
x1_found = x1;
x2_found = x2;
elseif Rsqr <= oldRsqr
Rsqr = oldRsqr;
break;
endif

endfor
endfor

我看过 fminsearch 但还没有真正了解如何使用它。 fsolve 也是如此,因为我希望 R 平方尽可能高。更高的 R 平方 = 更高的准确度 = 更好地选择常数。

我还制作了一个更长的版本,可以分步进行测试。

例如在

开始第一个for循环
for i = 0:100:10000
for j = 0:100:10000
i_1_min = x1_found-100;
i_1_max = x1_found+100;

j_1_min = x2_found-100;
j_1_max = x2_found+100;

....

i_2_min =  x1_found-100;
i_2_max =  x1_found+100;
i_2_min =  x2_found-100;
i_2_max =  x2_found+100;

那么下一个 for 循环是

for i_2 = i_2_min:10:i_2_max
for j_2 = j_2_min:10:j_2_max

等等等等......你得到了练习。

必须有一种更省时的方法来找到可以优化我的方程的两个常数吗?

如果 excel 可以在几秒钟内使用求解器完成此操作,那么对于像 Octave 这样强大的功能来说,这应该是一件容易的事?还是我错了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。