[已答复] Matlab解非线性方程组

[复制链接]
安吉妮尔zzz 发表于 2020-12-4 12:02:02
Matlab解非线性方程组

I_r=(a∙λ_r+b)∙C_1/(π∙λ_r^5 )∙exp(-C_2/(λ_r∙T))
I_g=(a∙λ_g+b)∙C_1/(π∙λ_g^5 )∙exp(-C_2/(λ_g∙T))
I_b=(a∙λ_b+b)∙C_1/(π∙λ_b^5 )∙exp(-C_2/(λ_b∙T))

其中,I_r=4.23×10^8I_g=2.77×10^7I_b=2.44×10^5
     λ_r=0.7×10^(-6)λ_g=0.546×10^(-6)λ_b=0.436×10^(-6);
     C_1=3.7419×10^(-16), C_2=1.4388×10^(-2);

还要满足一个条件0<( a∙λ_r+b) <1, 0< (a∙λ_g+b) <1, 0<( a∙λ_b+b) <1.

a,b,T最优解。

求助各位前辈们的指导,不胜感激~

5 条回复


shihe 发表于 2020-12-4 14:11:47
参考下:
a: 156466.871483261
b: -0.0661605318139976
t: 1836.27407800814

安吉妮尔zzz 发表于 2020-12-4 14:13:03
本帖最后由 安吉妮尔zzz 于 2020-12-4 14:43 编辑
shihe 发表于 2020-12-4 14:11
参考下:
a: 156466.871483261
b: -0.0661605318139976
非常感谢您的回答,请问代码可以展示一下吗?我想学习下。

shihe 发表于 2020-12-4 16:49:47
自己用1stOpt试试吧,很简单的。如果不加约束条件:0<( a∙λ_r+b) <1, 0< (a∙λ_g+b) <1, 0<( a∙λ_b+b) <1.,会有两组结果:
1:
a: 156466.871483263
b: -0.0661605318139984
t: 1836.27407800813

2:
a: -4026535446.75105
b: 2990.79043986946
t: 1055.13219978219

加约束后就只有第一组解符合了。

安吉妮尔zzz 发表于 2021-1-6 17:34:22
shihe 发表于 2020-12-4 16:49
自己用1stOpt试试吧,很简单的。如果不加约束条件:0

您好,我用1stOpt试了一下,计算的结果和你的不一致,显而易见的是,我的结果肯定是错的,而且每次运算的结果都不同,可以帮我指导下吗?

Parameters a,b,T;
Constant Ir=4.23*10^8,Ig=2.77*10^7,Ib=2.44*10^5,
Lr=0.7*10^(-6),Lg=0.546*10^(-6),Lb=0.436*10^(-6),
C1=3.7419*10^(-16),C2=1.4388*10^(-2);
Function (a*Lr+b)*C1/(pi*Lr^5)*exp(-C2/(Lr*T))=Ir;
         (a*Lg+b)*C1/(pi*Lg^5)*exp(-C2/(Lg*T))=Ig;
         (a*Lb+b)*C1/(pi*Lb^5)*exp(-C2/(Lb*T))=Ib;

====== 结果 ======

迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:66
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 1: (a*7e-7+b)*3.7419e-16/(pi*7e-7^5)*exp(-0.014388/(7e-7*t))-(423000000)
         2: (a*5.46e-7+b)*3.7419e-16/(pi*5.46e-7^5)*exp(-0.014388/(5.46e-7*t))-(27700000)
         3: (a*4.36e-7+b)*3.7419e-16/(pi*4.36e-7^5)*exp(-0.014388/(4.36e-7*t))-(244000)
目标函数值: 450944000
a: 0.325686282245442
b: 0.472576947882771
T: 0.355959156760946

====== 计算结束 ======

shihe 发表于 2021-1-6 22:56:12
版本的问题吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表