用matlab解三元二次方程组

来自:    更新日期:早些时候
Matlab解三元二次方程组问题,具体如下。~

C1=7.0863;
C2=6.8971;
C3=0.4929;
C4=0.8131;
C5=1.8240;
C6=3.8108;
C7=3.7318;
C8=-2.2238;
C9=1.9905;
C10=1.9087;
C11=0.6778;
syms X1 X2 X3;
exp1 = C1*X1+C4*X2-C5*X3^2-C6*X3-C9;
exp2 = C2*X1+C4*X2-C5*X3^2-C7*X3-C10;
exp3 = C3*X1+C4*X2-C5*X3^2-C8*X3-C11;
[X1,X2,X3] = solve(exp1,exp2,exp3,'X1,X2,X3'); % 直接用 solve 解决
x1 = double(X1)
x2 = double(X2)
x3 = double(X3)
x1 =
0.6280
x2 =
-0.3362
x3 =
0.4687

由于该三元二次方程组有多个解,每组x,y,z各有6个,所以其图像如下所示。

实现代码:
a=0.2;
b0=[0.1:0.1:10];
for i=1:length(b0)
syms x y z
b=b0(i);
[x,y,z]=vpasolve(a*(x^2+y^2)+(1-2*a)*x+(a-1)-2*b*z==0,a*y*(x+z)+(1-2*a)*y-b*z==0,a*(y^2+z^2)+(1-2*a)*z+(a-1)==0);
y0(i,:)=y;
end
plot(y0,b0,'.-')
xlabel('y'),ylabel('b')
如为实数解的话,还应去掉复数解。

图中的y的解是解析解,i是虚数。

如要得到数值解,可以这样做

>> fun=@(x)[0.132611776*(x(1)-8.104)+0.895881152*(x(2)-5.017)+0.146428341*(5-5.418),(x(1)-8.104)^2+(x(2)-5.017)^2+(5-5.418)^2];

>> [x,h]=fsolve(fun,rand(1,2))

执行得到如下结果

从运算结果来看,上述值并不是真正的数值解。

这说明该方程组无实数解,有复数解。



x1=-226.11; y1=238.802; z1=-1577; x2=223.1317; y2=201.5533; z2=-1577; x3=-277.2719; y3=-202.0605; z3=-1577; syms t1 t2 t3 eq1=(t1*x1-t2*x2)^2+(t1*y1-t2*y2)^2+(t1*z1-t2*z2)^2-532.8689^2; eq2=(t1*x1-t3*x3)^2+(t1*y1-t3*y3)^2+(t1*z1-t3*z3)^2-532.8689^2; eq3=(t3*x3-t2*x2)^2+(t3*y3-t2*y2)^2+(t3*z3-t2*z2)^2-753.5904^2; [t1 t2 t3]=solve(eq1,eq2,eq3,'t1','t2','t3') 楼主我用solve可以解出解来,你参考一下


用matlab解三元二次方程组视频

相关评论:
  • 15297177994MATLAB 解三元二次方程
    索茂亚当然如果p1!=P2!=P3也可以解,并且也只有一个解,不过就不是一个圆,没有这么好理解。如果还有不明白的可以联系我。解这样的问题还用动matlab?补充说明:我试了一下,确实动手解了一下方程组,其实还是有点问题的,主要是得到的解误差太大。比如1400mm的标准解,实际得到的答案可能是1380-1420之间...

  • 15297177994怎样使用matlab计算二次方程数值解
    索茂亚具体操作步骤如下:1、首先,单击【mode】按钮,进入计算器系统,如下图所示,然后进入下一步。2、其次,单击输入2:stat,如下图所示,然后进入下一步。3、接着,选择二次方程式,如下图所示,然后进入下一步。4、然后,输入三个坐标系(-1,0,1),如下图所示,然后进入下一步。5、随后,单击...

  • 15297177994MATLAB三元二次方程组,如何只保留X大于0的一组解呢?
    索茂亚C8=-2.2238;C9=1.9905;C10=1.9087;C11=0.6778;syms X1 X2 X3;exp1 = C1*X1+C4*X2-C5*X3^2-C6*X3-C9;exp2 = C2*X1+C4*X2-C5*X3^2-C7*X3-C10;exp3 = C3*X1+C4*X2-C5*X3^2-C8*X3-C11;[X1,X2,X3] = solve(exp1,exp2,exp3,'X1,X2,X3'); % 直接用 solve ...

  • 15297177994matlab解三元二次方程 当x不等于0时可以解除结果,但x=0时却解不出,这...
    索茂亚按下面修改:b1=-pi\/6;b2=pi\/2;b3=7*pi\/6;a1=0.790581791275871;a2=1.595624508069142;a3=0.790581791275871;x=0;y=400;z=-940;syms Rr l1 l2 ;eq1=(x-cos(b1)*Rr-l1*cos(b1)*sin(a1))^2+(y-sin(b1)*Rr-l1*sin(b1)*sin(a1))^2+(z+l1*cos(a1))^2-l2^2;eq2=(x-...

  • 15297177994三元二次方程组求解
    索茂亚这样的方程无法求解出具体的解,只能用软件找近似解,我特意花了点时间用matlab给你算了下,解有好几种,我把程序和解拷在下面,你自己对应看吧,x,y,z相同行对应的是一组解:>> [x,y,z] = solve('x^2 + y + z = 3','x + 0.5*y^2 + z = 2','z^2+1\/3*x+z=1')x ...

  • 15297177994用matlab中的solve函数解一个三元二次方程组
    索茂亚solve求解得到的是方程的解析解,如果没有解MATLAB不可能解出来的,就算方程有解也不一定能解出

  • 15297177994matlab 解三元二次方程组,求大神级解答
    索茂亚建议用数值方法解,别用符号方法。试试不动点迭代法或者牛顿迭代法。二分法可能也行。

  • 15297177994急急急~~请教matlab解三元二次方程组出错~~求大神
    索茂亚a=28550.43334 b=47443.59545 c=22125.6168 d=0.775 e=0.66173 f=0.987652 syms x y z eq1=x^2+y^2-2*x*y*d-a^2 eq2=x^2+z^2-2*x*z*e-b^2 eq3=z^2+y^2-2*z*y*f-c^2 s = solve(eq1,eq2,eq3);xx = s.x yy = s.y zz = s.z xx = 42402....

  • 15297177994用MATLAB怎么求这个带参数的二元三次方程组的解?(解决问题追加高分...
    索茂亚很简单,首先要把第一个函数中的x转变成左右等式的形式我们把它记作1式,再把1式与第二个函数结合依然写成于1式相同的形式,我们把这个形式记作2式,最后一个函数是最长也是最复杂的一个函式,我们把该式进行左右归类的简单划分,再把2式代入,用复合函数等量代换,等式左右恒等的性质可解出,以上...

  • 15297177994求matlab三元二次方程组拟合方法
    索茂亚α,k\/λ,K,λ认为是四个未知参数,然后把所有的数据值带入,求解矛盾方程组,或者用最小二乘的原理可以求解这几个参数

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网