lukexc 发表于 2012-6-20 02:13:09

宏程序中对X^Y(x的y次方),求解讨论!

在用宏程序编写对X^Y(x的y次方)的时候很是头痛,比如2^6, 2.3^6, 2.369^0.5,6.58^-2.0,……等等一系列的值!
1.我们指数是整数或者特殊的值,我们可以解决!
比如:2^6, 我们可以#100=2*2*2*2*2*2;解决
又比如:X(X取实数,比如1,2.2,-3,-5.3……)^Y(Y取正整数,比如1,2,3等),我们可以用循环(这种方法适用于X是变量、Y的值比较大等的情况):
……
#1=5;(X的值)
#2=12;(Y的值)
#3=1;(循环起始值)
#100=1.0;(求得的值保存在这里)
IF[#1EQ0]GOTO2;
WHILE[#3LE#2]DO1;
N1#100=#100*#1;
#3=#3+1;
END1;
GOTO3;
N2#100=0.0;
N3……;
……

再比如:X^0.5,这个其实就是开根(当然是二次了),这个我们的数控系统提供函数解决!#100=SQRT[#101];(#101就是X值了)

2.可以根据数控系统的函数直接解决:e(自然数)^Y(Y为实数),我们可以用EXP,LN解决!#100=EXP[#102];(#102就是Y值了,具体参见机床说明书)

3.就是剩下的类型了,比如指数是1.1,-2.3,0.6333,-9.6666等等!
我们用直接的方法很难(貌似没法解决, 因为数控系统没给这个函数),现在我给出我的方法,当然这是前辈在数学界早就证实,我在这里活用下罢了!
X(X为任意实数)^Y(Y也为任意实数);
……
#1=2.333;(X的值)
#2=3.6954;(Y的值)
#100=EXP[#2*LN[#1]];(求得的值保存在#100,核心算法)
……
大家还有什么更好的方法,就贴出来大家学习,讨论,谢谢!



风随意 发表于 2012-6-20 10:08:06

一不小心又坐了一个沙发!听说沙发有分加,不知道这个传说是真是假!

lukexc 发表于 2012-6-20 13:50:25

额的神,怎么没有感兴趣呢!

jiangssli 发表于 2012-6-20 14:03:37

想着累啊,实际中没有什么用途..不要残害脑细胞...细胞也是生命!!

ahmasdt 发表于 2012-6-20 14:14:54

实际生产中没什么作用吧

凌晨一点 发表于 2012-6-20 17:52:24

这个得顶一下

lukexc 发表于 2012-6-21 00:54:22

ahmasdt 发表于 2012-6-20 14:14 static/image/common/back.gif
实际生产中没什么作用吧

也许吧!

a383114847 发表于 2012-6-21 02:02:22

头疼

沉睡的红枫叶 发表于 2012-6-23 20:02:11

个人觉得这应该找学习《应用数学》的来解决

lukexc 发表于 2012-6-23 22:35:47

沉睡的红枫叶 发表于 2012-6-23 20:02 static/image/common/back.gif
个人觉得这应该找学习《应用数学》的来解决

确实是数学,这就是实际应用!
计算机就是数学的实践应用之一!
页: [1] 2
查看完整版本: 宏程序中对X^Y(x的y次方),求解讨论!