Delphi6 数学单元(math.pas)中的函数错误!!!

housisong 2002-08-12 06:54:22
Delphi6 数学单元(math.pas)中的函数错误!!!

(也许只是我使用的版本有问题,希望大家也看看!)

//反余切函数
ArcCot(x)=ArcTan(1/X) //Delphi6 误为 ArcCot(x)=Tan(1/X) !
//反正割函数
ArcSec(x)=ArcCos(1/X) //Delphi6 误为 ArcSec(x)=Cos(1/X) !
//反余割函数
ArcCsc(x)=ArcSin(1/X) //Delphi6 误为 ArcCsc(x)=Sin(1/X) !

//反双曲余切函数
ArcCotH(x)=ArcTanH(1/X) //Delphi6 误为 ArcCotH(x)=1/ArcCot(X) !
//反双曲正割函数
ArcSecH(x)=ArcCosH(1/X) //Delphi6 误为 ArcSecH(x)=1/ArcSec(X) !
//反双曲余割函数
ArcCscH(x)=ArcSinH(1/X) //Delphi6 误为 ArcCscH(x)=1/ArcCsc(X) !


你可以试验一下以下的代码:

var
x :extended;
begin
x:=3;
x:=csc(arccsc(x));//等等,测试其他函数时请注意值域
self.Edit1.Text:=floattostr(x);
end;

如果x不约等于3就有错
改正请看上面,然后重新编译Math.pas单元

...全文
111 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
housisong 2002-08-29
  • 打赏
  • 举报
回复
好像D7没有问题
erickleung 2002-08-24
  • 打赏
  • 举报
回复
我看错了, D7 是如下的:

function ArcCot(const X: Extended): Extended;
begin
if IsZero(X) then
Result := PI / 2
else
Result := ArcTan(1 / X);
end;

function ArcSec(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else
Result := ArcCos(1 / X);
end;

function ArcCsc(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else
Result := ArcSin(1 / X);
end;

function ArcCotH(const X: Extended): Extended;
begin
if SameValue(X, 1) then
Result := Infinity
else if SameValue(X, -1) then
Result := NegInfinity
else
Result := 0.5 * Ln((X + 1) / (X - 1));
end;

function ArcSecH(const X: Extended): Extended;
begin
if IsZero(X) then
Result := Infinity
else if SameValue(X, 1) then
Result := 0
else
Result := Ln((Sqrt(1 - X * X) + 1) / X);
end;

function ArcCscH(const X: Extended): Extended;
begin
Result := Ln(Sqrt(1 + (1 / (X * X)) + (1 / X)));
end;
改好了吧
erickleung 2002-08-24
  • 打赏
  • 举报
回复
D7也有相同的问题!!
wxn1983 2002-08-24
  • 打赏
  • 举报
回复
也没发现错误呀明天试试吧。
Eastunfail 2002-08-24
  • 打赏
  • 举报
回复
是的,呵呵,Borland好粗心阿
netlib 2002-08-24
  • 打赏
  • 举报
回复
我用正版D6,没有这个问题。
tigerchina 2002-08-17
  • 打赏
  • 举报
回复
我刚查过5和4的Math文件,都没有这三个函数,看来是Delphi6在Math中新提供的。而且看Math文件,发现确实是错了。
smhpnuaa 2002-08-17
  • 打赏
  • 举报
回复
向borland反映一下!
耙子 2002-08-15
  • 打赏
  • 举报
回复
我还在用delphi 5,没用6,
5上面是正常的。

我想d6不至于出现如此的大bug吧?d6也出来很久了,应该很多人用在数学上过,如果有这问题肯定早被发现了。
housisong 2002-08-15
  • 打赏
  • 举报
回复
有谁能帮忙测试一下上面提到的六个函数
ArcCot(x)=ArcTan(1/X) //Delphi6 误为 ArcCot(x)=Tan(1/X) !
//反正割函数
ArcSec(x)=ArcCos(1/X) //Delphi6 误为 ArcSec(x)=Cos(1/X) !
//反余割函数
ArcCsc(x)=ArcSin(1/X) //Delphi6 误为 ArcCsc(x)=Sin(1/X) !

//反双曲余切函数
ArcCotH(x)=ArcTanH(1/X) //Delphi6 误为 ArcCotH(x)=1/ArcCot(X) !
//反双曲正割函数
ArcSecH(x)=ArcCosH(1/X) //Delphi6 误为 ArcSecH(x)=1/ArcSec(X) !
//反双曲余割函数
ArcCscH(x)=ArcSinH(1/X) //Delphi6 误为 ArcCscH(x)=1/ArcCsc(X) !


torrentwang 2002-08-13
  • 打赏
  • 举报
回复
关注
hwkknd 2002-08-13
  • 打赏
  • 举报
回复
D6的Trunc我用过N次,没出现过这种情况……
telepan 2002-08-13
  • 打赏
  • 举报
回复
不会吧!好像忘完了,记不起具体的意思了!
至少楼上的我看不懂,好像trunc没有错呀!
qingniaor 2002-08-12
  • 打赏
  • 举报
回复
难免,delphi也是人写的!不过delphi这样会闯大祸了!trunc函数也有错误
trunc(200)=200
I=200,trunc(I)=199
erickleung 2002-08-12
  • 打赏
  • 举报
回复
不曾用过math.pas.
谢谢分享.
madyak 2002-08-12
  • 打赏
  • 举报
回复
没注意过!
zhc 2002-08-12
  • 打赏
  • 举报
回复
关注
内容概要:本文围绕“空地多无人平台协同路径规划技术”的论文复现展开,重点介绍了基于Matlab的多无人机与地面无人平台协同路径规划的算法实现与仿真研究。研究系统性地整合了无人机三维路径规划、动态避障、多机协同、任务分配及防撞机制等核心技术,结合智能优化算法(如遗传算法、粒子群算法、灰狼优化算法等)与经典路径规划模型(如Dubins路径、A*、RRT等),在复杂威胁环境下实现了高效、安全的协同路径规划。文提供了完整的Matlab代码支持,便于科研人员进行算法验证、性能对比与二次开发,并强调通过复现高水平学术论文(如EI、SCI期刊及硕博论文)深入掌握该领域的前沿方法与技术路线。; 适合人群:具备一定Matlab编程基础,从事无人机系统、自动化控制、人工智能、路径规划等相关领域研究的研究生、科研人员及工程技术人员,尤其适用于正在开展科研项目、撰写学位论文或希望提升算法实践能力的研究者。; 使用场景及目标:① 复现并深入理解空地协同路径规划领域的高水平论文算法;② 掌握Matlab在多智能体路径规划的建模、仿真与可视化方法;③ 应用于科研课题、毕业设计、项目申报及算法创新实践,提升研究的技术深度与工程可行性。; 阅读建议:建议结合文提供的网盘资源(含完整代码、仿真模型及参考文献资料)同步学习,优先选择与自身研究方向契合的案例进行复现,注重算法原理与代码实现之间的映射关系,并在掌握基础方案后尝试进行参数调优、算法融合或引入新约束条件以实现改进与创新。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧