登录论坛

查看完整版本 : [求助]请教一个循环的问题


qinhu577
2008-09-18, 10:53
请教各位大虾了。小弟在线等。
M文件中有以下内容:
syms x y x20 y20 c l1 l2 p l2x l2y a real
f = (y - y20) - (x - x20) * tan(p * (pi / 2 - 3 * c * cos (a)))
x20 = l2x + (l1 * sin(c) + l2 * sin(2 * c)) * cos (a)
y20 = l2y + p * (l1 * cos(c) + l2 * cos(2 * c))* cos (a)
f=subs(f);
l1=51;
l2=51;
f=subs(f);
x=0;
c=-0.2154 %需要代入一组值求解一组y值
l2x=398;
l2y=418;
f=subs(f);
p=1;
a=0;
f=subs(f);
solve(f,y)


这样求解可以 。但我现在需要代入一组C的值(可以是向量表示,也可以是矩阵的形式表示。)
来求解一组y的值。并保存这些y值以便下一个M文件中代入使用。
我定义了2个矩阵A B并吧A付了一组初值。B用来接受结果
A=[0:-0.002154:-0.2154];
B=[0:1:100];
for i=1:100
syms x y x20 y20 c l1 l2 p l2x l2y a real
f = (y - y20) - (x - x20) * tan(p * (pi / 2 - 3 * c * cos (a)))
x20 = l2x + (l1 * sin(c) + l2 * sin(2 * c)) * cos (a)
y20 = l2y + p * (l1 * cos(c) + l2 * cos(2 * c))* cos (a)
f=subs(f);
l1=51;
l2=51;
f=subs(f);
x=0;
c=A(i);
l2x=398;
l2y=418;
f=subs(f);
p=1;
a=0;
f=subs(f);
B(i) = solve(f,y)
end

但在c=A(i)后 报错说
Conversion to double from sym is not possible.

Error in ==> f_xunhuan1 at 20
B(i) = solve(f,y)

谁能给解决下。谢谢

另外还有个问题:
对于可能出现多个解的情况。如何储存在一个矩阵中呢。
比如还是上边那个,如果代入的是y,求解c。则一组值代入,每个值计算后都会产生2-6个解。怎么保存呢?

谢谢大家了。