楼主: caicaierfeng
1302 10

[问答] 求解指数等式 非线性方程 [推广有奖]

  • 5关注
  • 0粉丝

本科生

0%

还不是VIP/贵宾

-

威望
0
论坛币
935 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
342 点
帖子
32
精华
0
在线时间
108 小时
注册时间
2010-9-9
最后登录
2023-11-10

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大家好,问题更新了一下:
请教一下,求多个等式的解
P3=2783;
P10=3002;
P25=3216;
P50=3455;
P75=3702;
P90=3941;
P97=4203;

0=P3-P50*((1+L*S*(quantile('T',0.03,1379)))**(1/L)) ;
0=P10-P50*((1+L*S*(quantile('T',0.1,1379)))**(1/L)) ;
0=P25-P50*((1+L*S*(quantile('T',0.25,1379)))**(1/L)) ;
0=P50-P50*((1+L*S*(quantile('T',50,1379)))**(1/L)) ;
0=P75-P50*((1+L*S*(quantile('T',0.75,1379)))**(1/L)) ;
0=P90-P50*((1+L*S*(quantile('T',0.9,1379)))**(1/L)) ;
0=P97-P50*((1+L*S*(quantile('T',0.97,1379)))**(1/L)) ;

目标是求解L, S

原问题如下:
cube003_01Fun <- function(x) {
  ((2783/3455)**x-1)/qt(0.03,1377)-((3002/3455)**x-1)/qt(0.1,1377)
}

方程 ((2783/3455)**x-1)/qt(0.03,1377)-((3002/3455)**x-1)/qt(0.1,1377)=0的 解, qt是自由度为1377的t分布的t值,求解x,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:非线性方程 线性方程 非线性 Cube Fun

您可以尝试把问题发送到CDA答疑社区,会有专人帮您解答!https://www.cda.cn/discuss/

使用道具

藤椅
maths_hjxk 发表于 2021-1-27 11:48:07 |只看作者 |坛友微信交流群
画了一个曲线图,无解,曲线都在x轴下方。

使用道具

板凳
caicaierfeng 发表于 2021-1-27 12:48:18 |只看作者 |坛友微信交流群
maths_hjxk 发表于 2021-1-27 11:48
画了一个曲线图,无解,曲线都在x轴下方。
有解的,我看了下-1到2之间有2个解,我朋友用uniroot给我解出来了,谢谢!

使用道具

报纸
maths_hjxk 发表于 2021-1-27 13:58:50 |只看作者 |坛友微信交流群
还真是有,看错了

使用道具

地板
llb_321 在职认证  发表于 2021-1-27 20:56:14 |只看作者 |坛友微信交流群
曲线和曲线放大后确实有两个解

graph1.png graph2.png


使用道具

7
caicaierfeng 发表于 2021-2-8 14:31:38 |只看作者 |坛友微信交流群
llb_321 发表于 2021-1-27 20:56
曲线和曲线放大后确实有两个解
嗨,认同。
另外其实我是有多个等式,发现只解上面的等式,得出的解不适用于其他等式。可能是因为精度要求太高。
请问一下,解多个等式方程解,用R怎么求?
如:
P3=2783;
P10=3002;
P25=3216;
P50=3455;
P75=3702;
P90=3941;
P97=4203;

0=P3-P50*((1+L*S*(quantile('T',0.03,1379)))**(1/L)) ;
0=P10-P50*((1+L*S*(quantile('T',0.1,1379)))**(1/L)) ;
0=P25-P50*((1+L*S*(quantile('T',0.25,1379)))**(1/L)) ;
0=P50-P50*((1+L*S*(quantile('T',50,1379)))**(1/L)) ;
0=P75-P50*((1+L*S*(quantile('T',0.75,1379)))**(1/L)) ;
0=P90-P50*((1+L*S*(quantile('T',0.9,1379)))**(1/L)) ;
0=P97-P50*((1+L*S*(quantile('T',0.97,1379)))**(1/L)) ;

目标是求解L, S ,谢谢!

使用道具

8
zhou1_20 发表于 2021-2-9 09:55:34 |只看作者 |坛友微信交流群
你参考下
  1. model <- function(x) {
  2.   
  3.   L= x[1];
  4.   S= x[2]
  5.   
  6.   P3=2783;
  7.   P10=3002;
  8.   P25=3216;
  9.   P50=3455;
  10.   P75=3702;
  11.   P90=3941;
  12.   P97=4203;
  13.   
  14.   abs(sum(c(P3,P10, P25, P50, P75, P90, P97)) -
  15.     P50*(
  16.       (1+L*S*(qt(0.03,1379)))+
  17.       (1+L*S*(qt(0.10,1379)))+
  18.       (1+L*S*(qt(0.25,1379)))+
  19.       (1+L*S*(qt(0.50,1379)))+
  20.       (1+L*S*(qt(0.75,1379)))+
  21.       (1+L*S*(qt(0.90,1379)))+
  22.       (1+L*S*(qt(0.97,1379)))
  23.     )**(1/L));
  24. }


  25. optim(c(1,1), model, control = list(reltol=1e-99))
复制代码

  1. $par
  2. [1] 0.997526 1.078757

  3. $value
  4. [1] 3.637979e-12

  5. $counts
  6. function gradient
  7.      147       NA

  8. $convergence
  9. [1] 0

  10. $message
  11. NULL
复制代码

使用道具

9
caicaierfeng 发表于 2021-2-20 17:14:50 |只看作者 |坛友微信交流群
zhou1_20 发表于 2021-2-9 09:55
你参考下
非常感谢!
另外为什么要加abs?
不加的话L= 0.002773393  S= 1.686577731, 差别还挺大的。
不过看之前的转换后的曲线图,好像0.002773393更贴近些

使用道具

10
caicaierfeng 发表于 2021-2-20 17:40:31 |只看作者 |坛友微信交流群
zhou1_20 发表于 2021-2-9 09:55
你参考下
带入计算出来的参数结果,反推不出之前设定的P3,P10等等。哪里出问题了,谢谢!
如下计算过程:
theta = optim(c(1,1), model, control = list(reltol=1e-99))
theta
percent <- function(P) {
  L=theta$par[1];
  S=theta$par[2];
  P50=3455;
P50*(1+L*S*qt(P,1379))**(1/L)
}
percent(c(0.0228,0.03,0.1,0.25,0.5,0.75,0.9,0.97))
结果
[1]        NaN        NaN        NaN   943.6284  3455.0000  5971.4147  8239.6427 10482.0722

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 02:40