level 15
我以为楼主的症结在于对函数自变量的数值传递方式没弄清楚(形参的概念)。
z0(x,z):=z*cos(theta)+x*sin(theta)+z1
就您用的自变量参数(x,z)来说,重要的是参数的位置顺序,而不是它们的参数(自变量)的名称是什么。比如,先赋值x:=2,z:=3 ,然后计算。那么,在带入数据计算时,
可以写成t:=z0(x,z)或t:=z0(2,3) 。计算的数据是:
t:=z*cos(theta)+x*sin(theta)+z1 就是t:=3*cos(theta)+2*sin(theta)+z1
这和您的本意是一样的。
如果写成t:=z0(z,x)或t:=z0(3,2), 那么,等号右边的取值,并不理会左边的自变量名称,第一位置是z对应右边的x ,第二位置是 x对应右边的z得到的是:
t:=x*cos(theta)+z*sin(theta)+z1 也就是 t:=2*cos(theta)+3*sin(theta)+z1
它不会像前面那样计算的。
弄明白了这一点,您的第一个函数应该写成:
z0(x,z,theta):=z*cos(theta)+x*sin(theta)+z1
这样的话,您的theta值也可以任意赋值了。
代入数据计算时,一定要注意自变量参数排列的顺序,否则结果错误。
还有,自变量中有z ,函数名就不要用 z 了,z0 、大写的Z ,或者其它名称都可以。
如果您只需要最后的WW(x,z)的值,那么前面的计算过程可以一并写在一个程序板中,省去了自变量的传递过程,自定义函数的整体移动也要方便些。
您没有看置顶的吧规,没有上传源文件,不然,我就帮您改了。
2015年05月01日 04点05分
5
自定义函数的函数名也可以与函数内的自变量或参数同名,不过有可能把自己弄糊涂,要小心。
2015年05月01日 08点05分
回复
�³ǹ�ԢԢ��
:我受到了一些启发,万分感谢!!
2015年05月04日 01点05分
回复
�³ǹ�ԢԢ��
:我目前还不能上传源文件
2015年05月04日 02点05分
level 5
对不起,我的表述不清楚是吗?我所要定义的函数是WW和WW1,其他的只是这个函数里面要用到的,x0,1(x,z)和z0,1(x,z)是要用到的坐标,只是我想用同一个坐标(x,z),所以才会这样写。我说明白了吗
2015年05月04日 01点05分
6
level 12
没明白,你说的坐标是啥?怎么又是同一个坐标了?尝试用更浅显易懂的语言,多说两句,少于5000字不受理。
2015年05月04日 01点05分
7
吓到了,5000字?哈哈
2015年05月04日 03点05分
level 12
你这里θ值是不是就是象限角?也就是说在你给的图里,不同的表达式所处的象限,实际上θ也相应的不同?处于第1象限的函数中,θ的取值范围是[0,90°],这样的?
2015年05月04日 03点05分
10
是象限角啊,而且是弧度的
2015年05月05日 02点05分