作业帮 > 数学 > 作业

matlab中当数值太大时如何化简使得matlab能够计算?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/11/09 03:16:51
matlab中当数值太大时如何化简使得matlab能够计算?
需要计算以下式子的函数值,log(exp(x)+exp(y)+exp(z)),因为x,y和z的数值都非常大,以至于matlab中exp(x)的计算结果显示为lnf,请问大家有没有什么办法可以对log(exp(x)+exp(y)+exp(z))进行化简,从而使得可以计算?
我试过了,进行处理之后,y-x和z-x的值还有达到几十万的,仍然没有办法计算。
实际上我的问题中,y和z都是包含待定系数的变量,如x=a+1000b,y=c+1050d,z=e+1100f
其中,a,b,c,d,e,f是我需要估计的参数,且它们都是正数,因为我代入初始值之后,exp(x)无法计算,所以我想看看有没什么化简的办法。

Min = min(x,y,z)
log[exp(x) + exp(y) + exp(z)]
= log[exp(x-Min) + exp(y-Min) + exp(z-Min)] + Min
--------------------
参数有范围吗?
若有的话,
就采用 ggggwhw 的方案.
比如,如果知道 x,y,z的1个上限,M > MAX(X,Y,Z).
M可以由参数的范围确定.
那么
ln[e^x + e^y + e^z] = ln{e^M[e^(x-M) + e^(y-M) + e^(z-M)]}
= ln[e^(x-M) + e^(y-M) + e^(z-M)] + M
这个时侯,x-M