Matlab求解含有字母参数的非线性超越方程组
问题描述:
Matlab求解含有字母参数的非线性超越方程组
现有一个方程组:
c1*px+s1*py=a3*c23+s23*d4+a1+a2*c2
pz=a3*s23-d4*c23+a2s2
其中
c23=cos(x2+x3)
s23=sin(x2+x3)
c2=cos(x2)
s2=sin(x2)
s3=sin(x3)
c3=cos(x3)
c1=cos(x1)
s1=sin(x1)
其中只有x2和x3是未知的要求解的,其余的是已知参数,如何用matlab计算出x2和x3分别用已知参数表示的表达式呢?
答
既然你知道他是超越方程,他就没有通用的解法,直接数值解一般用优化的方法求解,先编写函数:
function f=fx(x)
x1=5;%给定的值
px=;
py=;
pz=;
a3=;
d4=;
a1=
a2=;
x2=x(1);
x3=x(2)
c23=cos(x2+x3);
s23=sin(x2+x3);
c2=cos(x2);
s2=sin(x2);
s3=sin(x3);
c3=cos(x3);
c1=cos(x1);
s1=sin(x1);
f(1)=c1*px+s1*py-(a3*c23+s23*d4+a1+a2*c2);
f(2)=pz-a3*s23-d4*c23+a2*s2;
然后
>> [x,f]=fsolve(@fx,[1,30])先看看基本知识,不要只急于解决问题。