宏程序中对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,核心算法)
[*]……
[*]复制代码大家还有什么更好的方法,就贴出来大家学习,讨论,谢谢!
一不小心又坐了一个沙发!听说沙发有分加,不知道这个传说是真是假! 额的神,怎么没有感兴趣呢! 想着累啊,实际中没有什么用途..不要残害脑细胞...细胞也是生命!! 实际生产中没什么作用吧 这个得顶一下
ahmasdt 发表于 2012-6-20 14:14
实际生产中没什么作用吧
也许吧! 头疼 个人觉得这应该找学习《应用数学》的来解决
沉睡的红枫叶 发表于 2012-6-23 20:02
个人觉得这应该找学习《应用数学》的来解决
确实是数学,这就是实际应用!
计算机就是数学的实践应用之一!
页:
[1]