当前位置: 首页 > 程序语言 >matlab求解方程组

matlab求解方程组

作者 ld1106282791
来源: 小木虫 550 11 举报帖子
+关注

matlab求解方程组,具体方程组如下图,


syms x1 x2 x3 x y  y3 z2 z3 Alpha0 Beta0 Alpha Beta
>> b1=[x2-x1 0 0];
b2=[x3-x2 0 z3-z2];
b3=[x-x3 y-y3 -z3];
>> n1= [sin(Alpha+Alpha0) 0 cos(Alpha+Alpha0)];
n2= [0 cos(Beta+Beta0) sin(Beta+Beta0)];
[x3,Alpha,Beta]=solve('b1*n1/norm(b1)=-b2*n1/norm(b2)','b2*n2/norm(b2)=-b3*n2/norm(b3)','dot(n2,cross(b2,b3))=0','x3','Alpha','Beta')


程序运行出错   求大神指教

matlab求解方程组
4.png 返回小木虫查看更多

今日热帖
  • 精华评论
  • yanze

    Cannot find explicit solution.
    syms x1 x2 x3 x y y3 z2 z3 Alpha0 Beta0 Alpha Beta
    b1=[x2-x1 0 0];

    b2=[x3-x2 0 z3-z2];

    b3=[x-x3 y-y3 -z3];
    n1= [sin(Alpha+Alpha0) ;0 ;cos(Alpha+Alpha0)];

    n2= [0 ;cos(Beta+Beta0); sin(Beta+Beta0)];
    aa=b1*n1/norm(b1)+b2*n1/norm(b2)
    bb=b2*n2/norm(b2)+b3*n2/norm(b3)
    cc=dot(n2,cross(b2,b3))
    [x3,Alpha,Beta]=solve( aa,bb,cc,'x3,Alpha,Beta')   

    这个还是手算方便点吧

  • Mr__Right

    这类问题,一般情况下用软件无法求符号解。

    但是,所有已知常数都给定的情况下,可以求数值解

  • ld1106282791

    引用回帖:
    2楼: Originally posted by yanze at 2017-08-03 17:17:32
    Cannot find explicit solution.
    syms x1 x2 x3 x y y3 z2 z3 Alpha0 Beta0 Alpha Beta
    b1=;

    b2=;

    b3=;
    n1= ;

    n2= ;
    aa=b1*n1/norm(b1)+b2*n1/norm(b2)
    bb=b2*n2/norm(b2)+b3*n2/norm(b3)
    cc=do ...

    x1=-2;
    x2=0;
    y3 = 0; ;
    z2=200;
    z3=200-0.1;
    R=70;
    x=R*cos(sita);
    y=R*sin(sita);
    sita==0:pi/18:2*pi;
    Alpha0=pi/4;
    Beta0=pi/6;

    求[x3,Alpha,Beta]的数值解    程序一直出错   求大神指教

  • ld1106282791

    引用回帖:
    3楼: Originally posted by Mr__Right at 2017-08-03 17:18:44
    这类问题,一般情况下用软件无法求符号解。

    但是,所有已知常数都给定的情况下,可以求数值解

    x1=-2;
    x2=0;
    y3 = 0; ;
    z2=200;
    z3=200-0.1;
    R=70;
    x=R*cos(sita);
    y=R*sin(sita);
    sita==0:pi/18:2*pi;
    Alpha0=pi/4;
    Beta0=pi/6;

    求[x3,Alpha,Beta]的数值解    程序一直出错   求大神指教

  • yanze

    clc
    clear


    syms x3 Alpha Beta

    sita=pi/8;
    x1=-2;
    x2=0;
    y3 = 0;
    z2=200;
    z3=200-0.1;
    R=70;
    x=R*cos(sita);
    y=R*sin(sita);

    Alpha0=pi/4;
    Beta0=pi/6;

    b1=[x2-x1 0 0];

    b2=[x3-x2 0 z3-z2];

    b3=[x-x3 y-y3 -z3];
    n1= [sin(Alpha+Alpha0) ;0 ;cos(Alpha+Alpha0)];

    n2= [0 ;cos(Beta+Beta0); sin(Beta+Beta0)];
    aa=b1*n1/norm(b1)+b2*n1/norm(b2);
    bb=b2*n2/norm(b2)+b3*n2/norm(b3);
    cc=dot(n2,cross(b2,b3));
    [x3,Alpha,Beta]=solve( aa,bb,cc,'x3,Alpha,Beta')

  • ld1106282791

    引用回帖:
    6楼: Originally posted by yanze at 2017-08-03 20:28:39
    clc
    clear


    syms x3 Alpha Beta

    sita=pi/8;
    x1=-2;
    x2=0;
    y3 = 0;
    z2=200;
    z3=200-0.1;
    R=70;
    x=R*cos(sita);
    y=R*sin(sita);

    Alpha0=pi/4;
    Beta0=pi/6;

    b1=;

    b2=;

    b3=;
    n1= ...

    你好   这里的sita是变化的   sita==0:pi/18:2*pi;    我想得到一系列的x3,Alpha,Beta随sita变化而变化的值   谢谢大神

  • yanze

    clc
    clear



    x3AlphaBeta=[];
    si=0:pi/18:2*pi;
    for i=1:length(si)
        sita=si(i);
        syms x3 Alpha Beta
    x1=-2;
    x2=0;
    y3 = 0;
    z2=200;
    z3=200-0.1;
    R=70;
    x=R*cos(sita);
    y=R*sin(sita);

    Alpha0=pi/4;
    Beta0=pi/6;

    b1=[x2-x1 0 0];

    b2=[x3-x2 0 z3-z2];

    b3=[x-x3 y-y3 -z3];
    n1= [sin(Alpha+Alpha0) ;0 ;cos(Alpha+Alpha0)];

    n2= [0 ;cos(Beta+Beta0); sin(Beta+Beta0)];
    aa=b1*n1/norm(b1)+b2*n1/norm(b2);
    bb=b2*n2/norm(b2)+b3*n2/norm(b3);
    cc=dot(n2,cross(b2,b3));
    [x3,Alpha,Beta]=solve( aa,bb,cc,'x3,Alpha,Beta') ;
    x3AlphaBeta=[x3AlphaBeta;double(x3),double(Alpha),double(Beta)];

    end,

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓