已知轨迹的参数方程用matlab求轨迹长度

来源:百度知道 编辑:UC知道 时间:2024/09/25 07:20:59
轨迹参数方程:x=s*cos(theta/I)+r*cos(theta0+theta/I+theta);
y=s*sin(theta/I)+r*sin(theta0+theta/I+theta);
求一段轨迹的长度,范围 theta: 0~(pi-theta0)
我用matlab编了个程序:
syms x y s r I theta0 theta
x=s*cos(theta/I)+r*cos(theta0+theta/I+theta);
y=s*sin(theta/I)+r*sin(theta0+theta/I+theta);
dx=diff(x,'theta');
dy=diff(y,'theta');
dl=sqrt(dx^2+dy^2);
l=int(dl,'theta',0,pi-theta0);
l
得出个结果是超长的,应该是错的...但不知道怎么错了..
应该怎么编程?用手算容易算出来吗??各位大侠救命啊!!!!!!感激涕零!!!!

你根据什么说它错了.
你的参数这么多,(除了自变量以外,还有s,r,theta0)
你要人家怎么给你简化.
你试一下
simple(l),这里给出它的化简式,没有一个是短的.
你可以先用一些值代替s,r,theta0
看一下.

建议你自己把dy和dx求出来,然后用数值积分计算,命令是quad