Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-09-18
年龄: 42
帖子: 4
声望力: 0 ![]() |
![]()
请教各位大虾了。小弟在线等。
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个解。怎么保存呢? 谢谢大家了。 |
![]() |
![]() |