MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1101|回复: 12|关注: 0

[已解决] 关于最小二乘法拟合求解方程组参数

[复制链接]

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
本帖最后由 hhu345 于 2017-7-27 13:53 编辑

各位前辈好:
我在文献中看到下文中方程中的参数需要通过最小二乘法来拟合求解,而我自己查询发现很多关于最小二乘法这方面的拟合都是有了大量实验数据之后的拟合,和我这个问题的关系不大。所以来论坛里请教前辈。问题如下


已知的实验数值有如下:
  1. sigma_0_T=1.02;sigma_0_C=1.16;sigma_90_T=0.97;sigma_90_C=1;sigma_45_C=1.06;tau_0=0.55;r_0_C=0.685;r_90_C=0.507;a=2;
复制代码

方程如下
  1. F0=(sigma_0_T)^a*((abs(phi_1)-k*phi_1)^a+(abs(phi_2)-k*phi_2)^a+(abs(phi_3)-k*phi_3)^a);
  2. F1=(sigma_0_C)^a*((abs(phi_1)+k*phi_1)^a+(abs(phi_2)+k*phi_2)^a+(abs(phi_3)+k*phi_3)^a);
  3. F2=(sigma_90_T)^a*((abs(psi_1)-k*psi_1)^a+(abs(psi_2)-k*psi_2)^a+(abs(psi_3)-k*psi_3)^a);
  4. F3=(sigma_90_C)^a*((abs(psi_1)+k*psi_1)^a+(abs(psi_2)+k*psi_2)^a+(abs(psi_3)+k*psi_3)^a);
  5. F4=(tau_0*C_66)^a*k1;
  6. F5=(sigma_45_C)^a*((0.5*(abs(omega_1)+k*omega_1))^a+(0.5*(abs(omega_2)+k*omega_2))^a+(0.5*(abs(omega_3)+k*omega_3))^a+k1*(C_66/2)^a);
  7. r_0_C=((-1-k)^a*(phi_1)^(a-1)*psi_1+(1-k)^a*((phi_2)^(a-1)*psi_2+(phi_3)^(a-1)*psi_3))/((-1-k)^a*(phi_1)^(a-1)*(psi_1+phi_1)+(1-k)^a*((phi_2)^(a-1)*psi_2+(phi_3)^(a-1)*psi_3+(phi_2)^a+(phi_3)^a));
  8. r_90_C=((-1-k)^a*(psi_2)^(a-1)*phi_2+(1-k)^a*((psi_1)^(a-1)*phi_1+(psi_3)^(a-1)*phi_3))/((-1-k)^a*(psi_2)^(a-1)*(psi_2+phi_2)+(1-k)^a*((psi_1)^(a-1)*phi_1+(psi_3)^(a-1)*phi_3+(psi_1)^a+(psi_1)^a));
复制代码

其中
  1. phi_1=(2*C_11)/3-(C_12)/3-(C_13)/3;
  2. phi_2=(2*C_12)/3-(C_22)/3-(C_23)/3;
  3. phi_3=(2*C_13)/3-(C_23)/3-(C_33)/3;
  4. psi_1=(-C_11)/3+(2*C_12)/3-(C_13)/3;
  5. psi_2=(-C_12)/3+(2*C_22)/3-(C_23)/3;
  6. psi_3=(-C_13)/3+(2*C_23)/3-(C_33)/3;
  7. omega_1=(C_11)/3+(C_12)/3-(2*C_13)/3;
  8. omega_2=(C_12)/3+(C_22)/3-(2*C_23)/3;
  9. omega_3=(C_13)/3+(C_23)/3-(2*C_33)/3;
复制代码

现在需要解决的问题是根据已知的数值,通过最小二乘法来拟合得到未知参数C_11,C_12,C_13,C_22,C_23,C_33,C_66,k,k1的值。各个方程中的F0,F1,F2,F3,F4,F5也是未知的,而且数值有可能一致(理论中理想状态),但是实际情况是没法一致,只能是值都在一个具体的值X附近(例如都在1附近,如1.0,1.1,1.2,0.9等等,这个只是举例,不代表现在所求的F就是那些值)。
这就是我的问题,谢谢有了解的前辈指教。


论坛优秀回答者

中级

706 麦片

财富积分


5001500


0

主题

1914

帖子

156

最佳答案
  • 关注者: 86
发表于 2017-7-26 22:21:50 | 显示全部楼层
有看懂楼主问题的吗?

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-7-26 22:39:31 | 显示全部楼层
shihe 发表于 2017-7-26 22:21
有看懂楼主问题的吗?

额。。是这样的。数据我一共就那几个,然后方程组就是列出来的那些。然后我想把方程中的未知参数求出来。不知道怎么求,文献中说可以用最小二乘法

论坛优秀回答者

中级

706 麦片

财富积分


5001500


0

主题

1914

帖子

156

最佳答案
  • 关注者: 86
发表于 2017-7-27 00:13:08 | 显示全部楼层
F=(sigma_0_T)^a*((abs(phi_1)-k*phi_1)^a+(abs(phi_2)-k*phi_2)^a+(abs(phi_3)-k*phi_3)^a);
F=(sigma_0_C)^a*((abs(phi_1)+k*phi_1)^a+(abs(phi_2)+k*phi_2)^a+(abs(phi_3)+k*phi_3)^a);
F=(sigma_90_T)^a*((abs(psi_1)-k*psi_1)^a+(abs(psi_2)-k*psi_2)^a+(abs(psi_3)-k*psi_3)^a);
F=(sigma_90_C)^a*((abs(psi_1)+k*psi_1)^a+(abs(psi_2)+k*psi_2)^a+(abs(psi_3)+k*psi_3)^a);
F=(tau_0*C_66)^a*k1;
F=(sigma_45_C)^a*((0.5*(abs(omega_1)+k*omega_1))^a+(0.5*(abs(omega_2)+k*omega_2))^a+(0.5*(abs(omega_3)+k*omega_3))^a+k1*(C_66/2)^a);
r_0_C=((-1-k)^a*(phi_1)^(a-1)*psi_1+(1-k)^a*((phi_2)^(a-1)*psi_2+(phi_3)^(a-1)*psi_3))/((-1-k)^a*(phi_1)^(a-1)*(psi_1+phi_1)+(1-k)^a*((phi_2)^(a-1)*psi_2+(phi_3)^(a-1)*psi_3+(phi_2)^a+(phi_3)^a));
r_90_C=((-1-k)^a*(psi_2)^(a-1)*phi_2+(1-k)^a*((psi_1)^(a-1)*phi_1+(psi_3)^(a-1)*phi_3))/((-1-k)^a*(psi_2)^(a-1)*(psi_2+phi_2)+(1-k)^a*((psi_1)^(a-1)*phi_1+(psi_3)^(a-1)*phi_3+(psi_1)^a+(psi_1)^a));

上面代码头五行左边的“F”都一样?或有不同的具体值?
八个方程八个未知数,非线性方程组求解问题吧?

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-7-27 07:49:14 | 显示全部楼层
本帖最后由 hhu345 于 2017-7-27 07:50 编辑
shihe 发表于 2017-7-27 00:13
F=(sigma_0_T)^a*((abs(phi_1)-k*phi_1)^a+(abs(phi_2)-k*phi_2)^a+(abs(phi_3)-k*phi_3)^a);
F=(sigma_0_C ...

F的值在理想情况下应该是一样的,但是在实际(也就是我现在的研究中)研究F是不能完全一样的,只能是很接近某个值,比如几个F的值有1.0;1.1;0.9;1.01.等等这种的,在1.0附近。当然,我只是举个例子,F的值不一定在1.0附近。那个文献中说的用最小二乘法,我就不知道怎么计算了

论坛优秀回答者

中级

706 麦片

财富积分


5001500


0

主题

1914

帖子

156

最佳答案
  • 关注者: 86
发表于 2017-7-27 09:28:39 | 显示全部楼层
F如果也是未知数,那就8个方程9个未知数,有无穷多组解。如果限制F=[0.9,1.2]之间,没有精确实数解。好好检查下方程。

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-7-27 09:31:36 | 显示全部楼层
本帖最后由 hhu345 于 2017-7-27 09:38 编辑
shihe 发表于 2017-7-27 09:28
F如果也是未知数,那就8个方程9个未知数,有无穷多组解。如果限制F=[0.9,1.2]之间,没有精确实数解。好好检 ...

前辈,我把问题再说一下吧,可能没说清。F是未知的,而且每个方程的F可以(可能)都不一样(因为如果F都一致的话,有可能求解不出一个具体的解),但是也是在某个具体的数值附近波动(误差不大),C_11,C_12...C_66应该是有无穷多的解。另外对F具体的值没有限制,只要所列方程求出的F值能在一个具体的值的附近就行。不知道是怎么计算呢?

论坛优秀回答者

中级

706 麦片

财富积分


5001500


0

主题

1914

帖子

156

最佳答案
  • 关注者: 86
发表于 2017-7-27 10:06:17 | 显示全部楼层
“F是未知的,而且每个方程的F可以(可能)都不一样”,那应该也有很多组解了:
1:
f1: 1.39194173126866
f2: 1.5
f3: 1.5
f4: 0.8000000190383
f5: 0.915779806196549
f6: 1.4999855422437
c_11: -0.061682861471347
c_12: 0.332686202265446
c_13: -0.784445420650657
k: 0.733371348996366
c_22: -0.258289647344757
c_23: -0.847860521940163
c_33: 1.26158243235998
c_66: 2.03175282501028

2:
f1: 1.48506485366885
f2: 1.5
f3: 1.39227473774315
f4: 0.806337864820024
f5: 0.800076568422153
f6: 1.41864198553695
c_11: -3.11543104612563
c_12: -2.84351203017746
c_13: -3.69409339432001
k: 1.35091008601733
c_22: -3.27480155633557
c_23: -3.70461739477169
c_33: -2.1719099253918
c_66: -1.3992324363422

另外楼主公式里出现的“k1”实际应该是“k”吧。

新手

7 麦片

财富积分


050


1

主题

7

帖子

0

最佳答案
 楼主| 发表于 2017-7-27 10:41:40 | 显示全部楼层
本帖最后由 hhu345 于 2017-7-27 10:43 编辑
shihe 发表于 2017-7-27 10:06
“F是未知的,而且每个方程的F可以(可能)都不一样”,那应该也有很多组解了:
1:
f1: 1.39194173126866

啊,不好意思,这几天搞得头晕晕的,总是细节没注意到,不好意思。那个‘k1’也是个未知要求的参数。不知道前辈这些结果是怎么得到的。

论坛优秀回答者

中级

706 麦片

财富积分


5001500


0

主题

1914

帖子

156

最佳答案
  • 关注者: 86
发表于 2017-7-27 11:37:30 | 显示全部楼层
"那个‘k1’也是个未知要求的参数",那就更多解了。
先把自己的问题理清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表