lukexc 发表于 2013-10-31 22:08:45

宏程序中对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,核心算法)
[*]……
[*]复制代码大家还有什么更好的方法,就贴出来大家学习,讨论,谢谢!

风随意 发表于 2013-10-31 22:09:28

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

lukexc 发表于 2013-10-31 22:10:22

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

jiangssli 发表于 2013-10-31 22:11:12

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

ahmasdt 发表于 2013-10-31 22:11:59

实际生产中没什么作用吧

凌晨一点 发表于 2013-10-31 22:12:41

这个得顶一下

lukexc 发表于 2013-10-31 22:13:32


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

实际生产中没什么作用吧
也许吧!

a383114847 发表于 2013-10-31 22:14:28

头疼

沉睡的红枫叶 发表于 2013-10-31 22:15:20

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

lukexc 发表于 2013-10-31 22:16:19


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

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