这个问题每次遇到都需要查找博客,还是matlab运用不熟练,特此记录。
问题背景:克雷格先生的机器人学导论课后7.15题,当t1!=t2时求解参数,由于许多问题中都需要这种求解符号解的情况,因此希望我下次写的时候就能不再查博客了)。
首先能求出3个简单的参数,剩下的是一个五参数五方程的方程组。
首先声明符号变量,第一排是待解的未知数,第二排是参数,也可以写成一排
syms a1 a2 a3 a4 a5
syms t1 t2 theta1 theta2 theta3
% 定义符号变量
其次是写出方程组
fun1 = t1^2 * a1+ t1^3 * a2 -(theta2-theta1);
fun2 = t2 * a3 + t2^2 * a4 + t2^3 * a5-(theta3-theta2);
fun3 = a3 + 2 * t2 * a4 +3 * t2^2 * a5;
fun4 = 2 * t1 * a1 + 3 * t1^2 * a2 - a3;
fun5 = 2 * a1 + 6 * t1 * a2 -2 * a4;
% 5个方程
最后求解
[a1,a2,a3,a4,a5] = solve(fun1,fun2,fun3,fun4,fun5,a1,a2,a3,a4,a5)
1、对于方程或方程组,以上方法可以解得符号解,当在方程组里面或者最后的solve里面给定参数的值,matlab就会自动解出数值解,matlab还能根据方程组化简得到式子,可以参考网上其他博客。
数值解实例:
syms a1 a2 t
fun1 = a1 + a2 + t
fun2 = a1 - a2 + 2*t
[a1,a2] = solve (fun1,fun2,a1,a2)
subs(a1,t,1)%将t带值进入
2、matlab还能求解微分方程,dsolve
3、还有很多求区间和求第一个解等等,可以参考网上其他博客,加油!O(∩_∩)O