平常我们求解一元多次方程组,计算量很大,算出结果非常麻烦,并且当方程组中有的参数不是数字,而是用字母表示的已知量时,计算过程和结果可能会更加复杂。我们可以使用MATLAB的符号公式来为我们计算求解。
比如现有以下五次多项式公式:
多项式的系数c0-c5未知。为简化计算,我们假设已知在t=0时刻的,一阶导
,二阶导
,和t=tp时刻的
,一阶导
,二阶导
的具体值。由于因为:
所以t=0可以列出3个方程,t=tp可以列出3个方程,共计6个方程6个未知量,可唯一求解:
在MATLAB中简化起算,我们用【A0 B0 C0 Ap Bp Cp】分别代表 【
】,则脚本如下:
clc;
clear;
close;
syms c0 c1 c2 c3 c4 c5 A0 B0 C0 tp Ap Bp Cp
% 定义一次方程
eq1 = c0 == A0;
eq2 = c1 == B0;
eq3 = 2*c2 == C0;
eq4 = c0 + c1*tp + c2*tp^2 + c3*tp^3 + c4*tp^4 + c5*tp^5 == Ap;
eq5 = c1 + 2*c2*tp + 3*c3*tp^2 + 4*c4*tp^3 + 5*c5*tp^4 == Bp;
eq6 = 2*c2 + 6*c3*tp + 12*c4*tp^2 + 20*c5*tp^3 == Cp;
% 解方程组
sol = solve([eq1, eq2, eq3, eq4, eq5, eq6], [c0,c1,c2,c3,c4,c5]);
% 显示解
disp(sol.c0);
disp(sol.c1);
disp(sol.c2);
disp(sol.c3);
disp(sol.c4);
disp(sol.c5);
在命令行界面的求解结果如下:
也即:
即完成对方程的系数求解。 代码中关于一次方程的定义部分可以依据实际情况自定义修改。