大数如何进行log(x),x,为正数(可以为浮点数),x的y次方运算,x,y为实数,谢谢大家!(50分)

  • 主题发起人 tigerhacker
  • 开始时间
T

tigerhacker

Unregistered / Unconfirmed
GUEST, unregistred user!
大数如何进行log(x),x,为正数(可以为浮点数),x的y次方运算,x,y为实数,谢谢大家!算法复杂度小点最好了!精确度要求小数点后100位!
 
以下摘自math.pas单元,在delphi7/source/common目录下面,里面有很多数学函数:
{ Logorithmic functions }
function LnXP1(const X: Extended): Extended;
{ Ln(X + 1), accurate for X near zero }
function Log10(const X: Extended): Extended;
{ Log base 10 of X }
function Log2(const X: Extended): Extended;
{ Log base 2 of X }
function LogN(const Base, X: Extended): Extended;
{ Log base N of X }
{ Exponential functions }
{ IntPower: Raise base to an integral power. Fast. }
function IntPower(const Base: Extended;
const Exponent: Integer): Extended register;
{ Power: Raise base to any power.
For fractional exponents, or |exponents| > MaxInt, base must be > 0. }
function Power(const Base, Exponent: Extended): Extended;
 
谢谢你,首先,这些函数虽然可是使用,可是,他们对大数运算的精度太低了,我对精度有比较高的要求,所以单存用这些函数是无法达到的!谢谢你的答案!!共同进步!!
 
要求多少位啊,这个要说清楚吧。
 
大数为10000位内,结果要求小数点后100位,我现在只能进行任意位数的加减乘除,谢谢你!
 
自己用二进制计算.最后自己转换成100位小数
 
不知阁下的二进制计算怎么算 ,忘指点.
 
fastmath试试 应该不错。要是那么高的精度的话试试用 泰勒公式 展开 看看高数就OK了
 
用matlab來計算。
然后再把結果用delphi調用。
 
你说这个办法,我觉得不大好吧!结果不是最重要的!重要的是弄明白为什么,过程也很重要啊!
不过,如果你有这个计算器的原代码分析,希望能那出来大家一起参考下!!:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
564
import
I
顶部