【自用】Mathematica 使用

文章介绍了在学习机器人动力学建模时,如何在Mathematica中有效地进行符号计算,包括使用单引号和D[]求导的区别,以及在处理Lagrangian方程时的技巧。

最近在学习机器人系统的动力学建模,涉及大量的符号计算,用手来算显然时费力不讨好的,最终我在Maple,Matlab和Mathematica三者中选择了后者。下面记录一些使用技巧和说明:

求导 f ' / f '[t] / D[f,t]

对于f ',它并不指定导数关于哪个变量求导,所以一般用于单变量求导,返回的是一个隐函数(lambda函数),其中#1表示输入参数中的第一个参数,例如

a[x_] := x^2; a' (* INPUT *)
2 #1 & (* OUTPUT *)

a[x_] := x^2 + y^2; a' (* INPUT *)
2 #1 & (* OUTPUT:这里因为a只是x的函数,所以单引号求导时把y当常数 *)

a[x_] := x^2; a'[5] (* INPUT *)
10 (* OUTPUT:这说明,这种方式非常适合求单一变量(如时间t)在某一时刻的导数值*)

a[x_] := x^2; a'[y] (* INPUT *)
2y (* OUTPUT:这要格外注意,后面[y]中其实是求a中唯一变量x的导函数在x=y处的值,而非对a关于y求导*)

a[x_, y_] := x^2 + y^2; a'(* INPUT *)
a' (* OUTPUT:如果是多变量,那么这个单引号求导其实就无法具体写出了只能写个a' *) 

a[x_, y_] := x^2 + y^2; a'[1,2](* INPUT *)
a'[1, 2] (* OUTPUT:可以看出多变量时,这么写也就是形式上求导,也没法代入求值 *) 

从返回值也能看出,f '[t]这种其实就是单一变量求导后代入t 而已,也就是,求函数a[x_]的导数在x=t处的导数值。此外,如果用单引号求导,还容易出现常值函数问题,这在数学上没问题,但是求出的东西让人看着很难受,所以一般我们都进行替换,如下:

0'(* INPUT *)
0 &(* OUTPUT *)

0' /. {0 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值