作业帮 > 综合 > 作业

用matlab解含参数方程组

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/03 18:42:43
用matlab解含参数方程组
syms x1 x2
>> [x1,x2]=solve('s1^2=(x+r*sin(x1)*sin(x2))^2+(r*sin(x1)*cos(x2)+d/2)^2+(h-r*cos(x1))^2','s2^2=(x+r*sin(x1)*sin(x2)-l)^2+(r*sin(x1)*cos(x2)-d/2)^2+(h-r*cos(x1))^2','x1','x2')
matlab一直在运行啊 算不出来
最后 运行出来的答案有1000多页 太恐怖了
用matlab解含参数方程组
建议放弃,solve一般解不了包含形式sin(x)*cos(y)的符号函数.
再问: 那用什么来解呢
再答: 你运行出来结果了?
再问: 出来一个结果 但是复制到word 里有1000页 我的是x1=atan(1/4*(-(-64*d^2*h^4*x^2*l^2+80*h^4*l^4*d^2-128*s1^.........
再答: 你试试simplify(A)函数,如果不能化简,就没办法了。
你也可以根据实际问题尝试数值解法,代入其他变量的数值,用fsolve函数。
数值解法:
%%%%%%%%%%%%%%%%%函数
F = myfun(z)
r=rand;
x=rand;
s1=rand;
d=rand;
h=rand;
s2=rand;
l=rand;%%%%各无关变量赋值
F = [s1^2-(x+r*sin(z(1))*sin(z(2)))^2+(r*sin(z(1))*cos(z(2))+d/2)^2+(h-r*cos(z(1)))^2;
s2^2-(x+r*sin(z(1))*sin(z(2))-l)^2+(r*sin(z(1))*cos(z(2))-d/2)^2+(h-r*cos(z(1)))^2];


%%%%%%%%%%%%%调用
x0 = [-5; -5]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call solve
%%%%注:有时候可能找不到解
祝你好运!!