Matlab中使用solve命令出现sym问题在相机成像的模型中需要用matlab解算一个方程组:S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...'Xw2*r11+Yw2*

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 14:26:28

Matlab中使用solve命令出现sym问题在相机成像的模型中需要用matlab解算一个方程组:S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...'Xw2*r11+Yw2*
Matlab中使用solve命令出现sym问题
在相机成像的模型中
需要用matlab解算一个方程组:
S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...
'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...
'Xw2*r11+Yw2*r12+A(2)*Xw2*r31+A(2)*Yw2*r32+t1+A(2)*t3=0',...
'Xw2*r21+Yw2*r22+B(2)*Xw2*r31+B(2)*Yw2*r32+t2+B(2)*t3=0',...
'Xw3*r11+Yw3*r12+A(3)*Xw3*r31+A(3)*Yw3*r32+t1+A(3)*t3=0',...
'Xw3*r21+Yw3*r22+B(3)*Xw3*r31+B(3)*Yw3*r32+t2+B(3)*t3=0',...
'Xw4*r11+Yw4*r12+A(4)*Xw4*r31+A(4)*Yw4*r32+t1+A(4)*t3=0',...
'Xw4*r21+Yw4*r22+B(4)*Xw4*r31+B(4)*Yw4*r32+t2+B(4)*t3=0',...
'r11^2+r21^2+r31^2=1',...
'r21^2+r22^2+r32^2=1',...
'r11*r12+r21*r22+r31*r32=0');
其中向量A=[0.2252 0.2453 -0.1968 -0.1834]
B=[0.1665 -0.1506 -0.1757 0.0798]
Xw1=0;Xw2=0;Xw3=1;Xw4=1;
Yw1=0.6;Yw2=0;Yw3=0;Yw4=0.6; 这些都为已知量
需要通过8个一次线性方程和3个二次方程共11个方程来解算9个未知量:r11 r12 r21 r22 r31 r32 t1 t2 t3
而直接使用solve命令解算11个方程 CPU%100很长时间都没算出来
如果只用前8个一次线性方程解算 出现了 带sym的解

Matlab中使用solve命令出现sym问题在相机成像的模型中需要用matlab解算一个方程组:S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...'Xw2*r11+Yw2*
function y=func_nonlinear(x)
A=[0.2252 0.2453 -0.1968 -0.1834];
B=[0.1665 -0.1506 -0.1757 0.0798];
Xw1=0;Xw2=0;Xw3=1;Xw4=1;
Yw1=0.6;Yw2=0;Yw3=0;Yw4=0.6;
%S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...
%'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...
%'Xw2*r11+Yw2*r12+A(2)*Xw2*r31+A(2)*Yw2*r32+t1+A(2)*t3=0',...
%'Xw2*r21+Yw2*r22+B(2)*Xw2*r31+B(2)*Yw2*r32+t2+B(2)*t3=0',...
%'Xw3*r11+Yw3*r12+A(3)*Xw3*r31+A(3)*Yw3*r32+t1+A(3)*t3=0',...
%'Xw3*r21+Yw3*r22+B(3)*Xw3*r31+B(3)*Yw3*r32+t2+B(3)*t3=0',...
%'Xw4*r11+Yw4*r12+A(4)*Xw4*r31+A(4)*Yw4*r32+t1+A(4)*t3=0',...
%'Xw4*r21+Yw4*r22+B(4)*Xw4*r31+B(4)*Yw4*r32+t2+B(4)*t3=0',...
%'r11^2+r21^2+r31^2=1',...
%'r21^2+r22^2+r32^2=1',...
%'r11*r12+r21*r22+r31*r32=0');
%r11 r12 r21 r22 r31 r32 t1 t2 t3
%分别为x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9)
y(1)=Xw1*x(1)+Yw1*x(2)+A(1)*Xw1*x(5)+A(1)*Yw1*x(6)+x(7)+A(1)*x(9);
y(2)=Xw1*x(3)+Yw1*x(4)+B(1)*Xw1*x(5)+B(1)*Yw1*x(6)+x(8)+B(1)*x(9);
y(3)=Xw2*x(1)+Yw2*x(2)+A(2)*Xw2*x(5)+A(2)*Yw2*x(6)+x(7)+A(2)*x(9);
y(4)=Xw2*x(3)+Yw2*x(4)+B(2)*Xw2*x(5)+B(2)*Yw2*x(6)+x(8)+B(2)*x(9);
y(5)=Xw3*x(1)+Yw3*x(2)+A(3)*Xw3*x(5)+A(3)*Yw3*x(6)+x(7)+A(3)*x(9);
y(6)=Xw3*x(3)+Yw3*x(4)+B(3)*Xw3*x(5)+B(3)*Yw3*x(6)+x(8)+B(3)*x(9);
y(7)=Xw4*x(1)+Yw4*x(2)+A(4)*Xw4*x(5)+A(4)*Yw4*x(6)+x(7)+A(4)*x(9);
y(8)=Xw4*x(3)+Yw4*x(4)+B(4)*Xw4*x(5)+B(4)*Yw4*x(6)+x(8)+B(4)*x(9);
y(9)=x(1)^2+x(3)^2+x(5)^2-1;
y(10)=x(3)^2+x(4)^2+x(6)^2-1;
y(11)=x(1)*x(2)+x(3)*x(4)+x(5)*x(6);
将该函数保存成M文件,文件名为func_nonlinear.m
在命令窗口中输入:
x0=[0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5];
fsolve(@func_nonlinear,x0)
显示结果为
ans =
Columns 1 through 8
0.8617 -0.0013 0.1270 -0.9599 0.4908 0.2509 -0.4245 0.2616
Column 9
1.7325
这就是9个变量的迭代数值解.
我的matlab版本是7.1的,不知道是否适合其他版本,

Matlab中使用solve命令出现sym问题在相机成像的模型中需要用matlab解算一个方程组:S=solve('Xw1*r11+Yw1*r12+A(1)*Xw1*r31+A(1)*Yw1*r32+t1+A(1)*t3=0',...'Xw1*r21+Yw1*r22+B(1)*Xw1*r31+B(1)*Yw1*r32+t2+B(1)*t3=0',...'Xw2*r11+Yw2* MATLAB解二元一次方程,solve和roots这两个命令有什么区别?如题.是不是分别使用两个命令的结果没有任何区别阿? matlab解方程的问题我要求解一个方程,使用solve命令.结果计算出来了以后是这个,这是怎么回事?明显不正确. matlab中查看函数说明及使用举例的命令是什么? 什么条件的一元多次方程无解我在matlab中计算一个8次方程,用的是solve命令,4792475087233281447184331668420221553183327561930903721/19807040628566084398385987584000000-406685344555353746559610607888053028789889743340884379139611 matlab中eig命令的问题在matlab中使用eig命令,为什么会出现下列语句Input to EIG must not contain NaN or Inf.[EigenVectors,EigenValues]=eig(H)是不是我求出的数太大了,遇到这种情况我该用什么语句来完成对矩阵 matlab新手求解3:solve函数.我输入solve('x^3+5*x-8'),结果求得三个解:.我只想使用第一个解,如何将其从solve()中提取出来.输入[a b c ]=solve('x^3+5*x-8')时matlab报错,查了资料才知道solve函数的返回值 matlab中comet含义,什么命令语句 在matlab中怎么使用save命令,load命令 ,如何产生与原矩阵大小相同的矩阵,怎么使矩阵等距分布? 如何在matlab下求解三角函数方程matlab 三角函数方程求解10 - 离问题结束还有 13 天 13 小时碰到一个问题,想在matlab下求解这样一个方程:tan(k*(1.57E-6))/(k*(1.57E-6))=1/0.2159,我用了solve命令,结果出现 matlab中solve函数不能用的原因 如何查看matlab中使用hist函数画图上的各点的数值我现在怎样查看图上各点的坐标值?使用什么命令呢? Matlab中solve解非线性方程组用的是什么算法?能否查看solve的源程序? MATLAB,solve函数, AutoCAD 2007中,如何使用旋转命令? 英语翻译该问题是在Matlab 使用中提示出现的错误 matlab中出现了这个问题, matlab里solve如何使用,是否有别的函数可以代替它?