0

我正在做光线追踪,我必须在光线和多项式之间进行交集,所以我得到了以下等式,我必须为 t 求解它。

一个(21)。(Y.^5) + (A(20). (Y.^4))。X + A(19)。(Y.^4) + (A(18). (Y.^3))。(X.^2) + (A(17).*(Y.^3))。X + A(16)。(Y.^3) + (A(15). (Y.^2))。(X.^3) + (A(14). (Y.^2))。(X.^2) + (A(13).*(Y.^2))。X + A(12)。(Y.^2) + (A(11). (Y))。(X.^4) + (A(10) .Y)。(X.^3) + (A(9) .Y)。(X.^2) + (A(8) .Y)。(X) + (A(7). Y) + A(6)。(X.^5) + A(5)。(X.^4) + A(4)。(X.^3) + A(3).*(X.^2) + A(2).*X + A(1) - Z = 0;

尽管:

X = (px +t*dx);
Y = (py +t*dy);
Z = (pz +t*dz);

所以我想得到关于其他变量的 t 。(我有所有其他变量,但我不知道如何计算它)

我想使用SolveFunction ,这就是我用一个例子来测试它的方法:但我没有得到答案

syms t px py pz dx dy dz A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1;

求解(A21.*((py +t*dy).^5) + (A20.*((py +t*dy).^4)).*(px +t*dx) + A19.*(( py +t*dy).^4) + (A18.*((py +t*dy).^3)).*((px +t*dx).^2) + (A17.*((py +t*dy).^3)).*(px +t*dx) + A16.*((py +t*dy).^3) + (A15.*((py +t*dy).^ 2)).*((px +t*dx).^3) + (A14.*((py +t*dy).^2)).*((px +t*dx).^2) + (A13.*((py +t*dy).^2)).*(px +t*dx) + A12.*((py +t*dy).^2) + (A11.*((py +t*dy))).*((px +t*dx).^4) + (A10.*(py +t*dy)).*((px +t*dx).^3) + ( A9.*(py +t*dy)).*((px +t*dx).^2) + (A8.*(py +t*dy)).*((px +t*dx)) + (A7.*(py +t*dy)) + A6.*((px +t*dx).^5) + A5.*((px +t*dx).^4) + A4.*(( px +t*dx).^3) + A3.*((px +t*dx).^2) + A2.*(px +t*dx) + A1 - (pz +t*dz),t)

请支持 非常感谢提前

4

1 回答 1

0

我发现您的尝试存在几个问题:

  1. 符号变量:Solve 是符号工具箱的一部分,您似乎没有在任何地方将变量声明为符号
  2. 相等运算符:在matlab=中代表赋值,而==代表相等
  3. 作用t:不t事先声明,也不告诉求解器认为它是一个可以求解的变量

确保尝试运行时建议的一些示例doc solve

于 2013-10-11T08:49:48.170 回答