Matlab 版 (精华区)
发信人: hahn (有奇@选择遗忘的自由), 信区: Matlab
标 题: [合集] 这个方程怎么解不出来呢?
发信站: 哈工大紫丁香 (Sun Aug 6 08:44:29 2006), 站内
────────────────────────────────────────
huaxin (不是计划就是总结) 于 (Thu May 18 16:06:21 2006) 说道:
x,y,z 为所求变量。其余为常数。三个代数方程。不知道错在哪里。用符号解的
[x,y,z]=solve('cos(xw)*cos(zw)*z*cos(yw)-cos(xw)*cos(zw)*z*sin(yw)*y-cos(xw)*sin(zw)*sin(yw)*y-sin(xw)*cos(yw)*y-x*sin(xw)*cos(zw)*z*cos(yw)+x*sin(xw)*cos(zw)*z*sin(yw)*y-x*sin(xw)*sin(zw)*cos(yw)+x*sin(xw)*sin(zw)*sin(yw)*y-x*cos(xw)*cos(yw)*y-x*cos
sin(yw)-k1', 'cos(xw)*sin(zw)*z-sin(xw)*x*sin(zw)*z+sin(xw)*x*cos(zw)-k2', '-cos(xw)*cos(zw)*z*sin(yw)-cos(xw)*cos(zw)*z*cos(yw)*y-cos(xw)*sin(zw)*cos(yw)*y+sin(xw)*sin(yw)*y+x*sin(xw)*cos(zw)*z*sin(yw)+x*sin(xw)*cos(zw)*z*cos(yw)*y+x*sin(x
n(zw)*sin(yw)+x*sin(xw)*sin(zw)*cos(yw)*y-x*cos(xw)*cos(yw)+x*cos(xw)*sin(yw)*y-k3')
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:07:31 2006) 说道:
做数值解吧
【 在 huaxin (不是计划就是总结) 的大作中提到: 】
: x,y,z 为所求变量。其余为常数。三个代数方程。不知道错在哪里。用符号解的
: [x,y,z]=solve('cos(xw)*cos(zw)*z*cos(yw)-cos(xw)*cos(zw)*z*sin(yw)*y-cos(xw)*sin(zw)*sin(yw)*y-sin(xw)*cos(yw)*y-x*sin(xw)*cos(zw)*z*cos(yw)+x*sin(xw)*cos(zw)*z*sin(yw)*y-x*sin(xw)*sin(zw)*cos(yw)+x*sin(xw)*sin(zw)*sin(yw)*y-x*cos(xw)*cos(yw)*y-x*c
────────────────────────────────────────
huaxin (不是计划就是总结) 于 (Thu May 18 16:13:55 2006) 说道:
为什么会解不出来呢?
就是三个未知数,其余的一大堆都是些常数,真不知道为什么在matlab里过不去呢?
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 做数值解吧
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:15:01 2006) 说道:
你把常数赋值试试
【 在 huaxin (不是计划就是总结) 的大作中提到: 】
: 为什么会解不出来呢?
: 就是三个未知数,其余的一大堆都是些常数,真不知道为什么在matlab里过不去呢?
────────────────────────────────────────
feifeifool (尉飞) 于 (Thu May 18 16:15:38 2006) 说道:
solve是在没有解析解得情况下输出数值解吧?
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 做数值解吧
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:20:06 2006) 说道:
我的意思是让他把变量名换成数值,再用solve去解
这样应该能得到结果
【 在 feifeifool (尉飞) 的大作中提到: 】
: solve是在没有解析解得情况下输出数值解吧?
────────────────────────────────────────
feifeifool (尉飞) 于 (Thu May 18 16:22:41 2006) 说道:
呵呵,我理解错了
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 我的意思是让他把变量名换成数值,再用solve去解
: 这样应该能得到结果
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:23:37 2006) 说道:
呵呵,如此复杂的表达式不建议用这样的符号解
结果一般不会简单的
【 在 feifeifool (尉飞) 的大作中提到: 】
: 呵呵,我理解错了
────────────────────────────────────────
huaxin (不是计划就是总结) 于 (Thu May 18 16:39:58 2006) 说道:
我把系数都换成数值了,怎么得出的解竟是二维的呢?
clear;
clc;
xw=5; yw=5; zw=5;
k1=0.1;k2=0.1;k3=0.1
syms x y z p1 p2 s1 s2 s3 ;
A1=[cos(yw) 0 sin(yw) 0;0 1 0 0;-sin(yw) 0 cos(yw) 0;0 0 0 1];
A2=[cos(zw) -sin(zw) 0 0;sin(zw) cos(zw) 0 0;0 0 1 0;0 0 0 1];
A3=[1 0 0 0;0 cos(xw) -sin(xw) 0;0 sin(xw) cos(xw) 0;0 0 0 1];
p1=A1*A2*A3*[0;-1;0;1];
B1=[cos(yw) 0 sin(yw) 0;0 1 0 0;-sin(yw) 0 cos(yw) 0;0 0 0 1];
B2=[1 0 y 0;0 1 0 0;-y 0 1 0;0 0 0 1];
B3=[cos(zw) -sin(zw) 0 0;sin(zw) cos(zw) 0 0;0 0 1 0;0 0 0 1];
B4=[1 -z 0 0;z 1 0 0;0 0 1 0;0 0 0 1];
B5=[1 0 0 0;0 cos(xw) -sin(xw) 0;0 sin(xw) cos(xw) 0; 0 0 0 1];
B6=[1 0 0 0;0 1 -x 0;0 x 1 0;0 0 0 1];
p2=B1*B2*B3*B4*B5*B6*[0;-1;0;1]
s1=p2(1)-p1(1)-k1
s2=p2(2)-p1(2)-k2;
s3=p2(3)-p1(3)-k3;
[x,y,z]=solve(s1,s2,s3);
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 呵呵,如此复杂的表达式不建议用这样的符号解
: 结果一般不会简单的
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:48:11 2006) 说道:
多解吧
double(x)可以得到数值
【 在 huaxin (不是计划就是总结) 的大作中提到: 】
: 我把系数都换成数值了,怎么得出的解竟是二维的呢?
: clear;
: clc;
: ...................
────────────────────────────────────────
huaxin (不是计划就是总结) 于 (Thu May 18 16:54:58 2006) 说道:
像这样多个矩阵相乘,里面含有未知数。要解未知数的话,是不是用消元等代数方程组的解法较合适呢?
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 多解吧
: double(x)可以得到数值
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Thu May 18 16:57:30 2006) 说道:
线性方程组还好说,要是非线性的就麻烦了
【 在 huaxin (不是计划就是总结) 的大作中提到: 】
: 像这样多个矩阵相乘,里面含有未知数。要解未知数的话,是不是用消元等代数方程组的解法较合适呢?
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.567毫秒