这个问题每次遇到都需要查找博客,还是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

本文详细记录了使用MATLAB解决符号和数值解问题的方法,包括设置符号变量、建立方程组、求解方程以及如何从符号解过渡到数值解的步骤。此外,还介绍了MATLAB求解微分方程的功能,并鼓励读者通过实践进一步熟悉这些工具。
3099

被折叠的 条评论
为什么被折叠?



