求助,解方程不出结果
mathematica吧
全部回复
仅看楼主
level 2
金志鸿 楼主
2020年06月03日 11点06分 1
level 2
金志鸿 楼主
eq = 7*Sum[x^Log2[k], {x, 25}] - 103.6
Solve[Rationalize[eq, 0] == 0, k, Reals]
2020年06月03日 11点06分 2
你x没给起始
2020年06月03日 13点06分
@白灵数生 语法没毛病吧,不给起始值就是从1开始数起吧。。
2020年06月03日 20点06分
2020年06月04日 02点06分
level 7
这里我不清楚楼主大概想做什么,如果只是想把eq里k前面每一项系数都化成有理数的话,建议分开处理。而且都有理化了,本身就是个近似结果,误差为什么要求为0啊,这不是刁难程序么。。。
你可以试下Rationalize根号2,然后把误差设成0,看看是什么[滑稽]
2020年06月03日 20点06分 3
……不对。Rationalize[……,0]是把代码里的浮点数换成有理数的常用技巧,这个方法很多时候可以用于回避数值计算时的精度问题,还可以解决Solve的某些与浮点数有关的警告,LZ会在代码里加这个八成是在查“Solve为什么不能解这个方程”的时候看到了运用这个技巧的帖子。然而这个技巧对LZ的问题……
2020年06月06日 02点06分
……并没有什么用,因为LZ的方程解不出解析解来,仅仅是因为它是个复杂的超越方程而已。还是那句话:超越方程解析解基本洗洗睡。
2020年06月06日 02点06分
这问题用FindRoot还是简单直接的: FindRoot[eq, {k, 1}] (* {k->0.849987} *)
2020年06月06日 02点06分
@xzcyr 是这样么?可是rationalize的第二个参数不是精确度么。。而且Rationalize 根号2,0的结果依旧是根号2,并没有变成有理数,这个该怎么理解啊?
2020年06月06日 02点06分
1