作业帮 > 综合 > 作业

matlab解多元高次方程组 七元方程组 运行出来为什么是这样的

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/20 14:43:20
matlab解多元高次方程组 七元方程组 运行出来为什么是这样的
clear all
e1=sym('-0.486*x+0.502*2*(z-y)-0.994*z+6*0.048*cos(z)=0');
e2=sym('m^2=0.068^2+0.048^2-2*0.068*0.048*cos(z)');
e3=sym('n=acos((0.068^2+m^2-0.048^2)/(2*0.068*m))');
e4=sym('p=acos((0.065^2-m^2+0.045^2)/(2*0.065*0.045))');
e5=sym('q=acos((0.045^2+m^2-0.065^2)/(2*m*0.045))');
e6=sym('y=p-x');
e7=sym('x=pi-q-n');
[x,y,z,m,n,p,q]=solve(e1,e2,e3,e4,e5,e6,e7)
Error using ==> solve
Error,(in solve) a constant is invalid as a variable,Pi
Error in ==> C:\matlab\MATLAB\toolbox\symbolic\@sym\solve.m
On line 49 ==> [varargout{1:max(1,nargout)}] = solve(S{:});
为什么出现这样的结果 我的程序对吗
matlab解多元高次方程组 七元方程组 运行出来为什么是这样的
x =
.29484514683589444421167199077587e-1
y =
.65118381470998676770266229731083
z =
.40329842099834915788632949885956
m =
2.0960756752924982872951569615298
n =
.39433316358730818346482412443884
p =
.89652574110409744215053744207175e-2
q =
-6.6646937314994780581428452583976
运行结果如上,你的程序没有问题.
pi是一个常数,你可能在其他地方将它设为变量了,检查一下你的程序有没有变量名称为pi的.
另一种可能是你在e7=sym('x=pi-q-n')中误把p写成pi了,不过这种情况下运行结果为空集.
再问: 谢谢 这个结果跟我的实验值误差太大 我换了一个方程 用fsolve解 但是运行总出问题 q(1)=-0.486*x-0.502*(x-y)+(0.502*(x-y)+0.502*(z-y))*(0.045*sin(z-x))/(0.065*sin(y-z))+(6*0.048*cos(z)-0.502*(z-y)-0.994*z)*0.045*sin(y-x)/(0.048*sin(y-z)); 然后运行 x=fsolve('fun2',[0.05,0.05,0.05,0.05,0.05,0.05,0.05],optimset('Display','off')) Warning: Divide by zero. > In fun2 at 9 会出现警告为什么 该怎么改
再答: 在你自己写的fun2函数中的第9行出现了除数为0的情况
再问: 恩恩 那个我知道了 改过有结果了 但还是误差很大 [0.05,0.05,0.05,0.05,0.05,0.05,0.05]是我随便取的 里面的值有什么要求吗 麻烦了
再答: 你随便取的值是解方程时用的初始值,这个好像不需要,默认就行 建议你看看自己写的fun2,照理说x,y,z三个变量的话需要三个方程