matlab解方程

一 未定义与 ‘function_handle’ 类型的输入参数相对应的运算符 ‘-’。

            r0_temp = @(lamda)[R * cos(lamda) ,R * sin(lamda) + v_y * lamda ]';      %光源点
            beta = @(lamda)(r0_temp - r_temp);
            r_temp是一个向量,[500;200];

解决方案:改成beta = @(lamda)(r0_temp(lamda) - r_temp);

二 一个函数的自变量是另一个函数的,如何求解

            syms lamda

            eu = @(lamda)[-sin(lamda) ,cos(lamda)]';
            ew = @(lamda)[ cos(lamda) ,sin(lamda)]';
            r0_temp = @(lamda)[R * cos(lamda) ,R * sin(lamda) + v_y * lamda ]';      %光源点
            beta = @(lamda)(r0_temp(lamda) - r_temp);
            gamma = @(lamda)(-atan2(dot(beta(lamda),eu(lamda)),dot(beta(lamda),ew(lamda)))); 
            
            eqn = 1 - (v_y * cos(lamda) + R * (cos(gamma(lamda)).^2) - sin(gamma(lamda)) * v_y * sin(gamma(lamda) - lamda))/ ...
                                        (cos(gamma(lamda)) * norm(r_temp - r0_temp(lamda))) == 0;

            solx1 = vpasolve(eqn, lamda,[0,2*pi]);
            lamdaA =  double(solx1(1));

你可能感兴趣的:(matlab操作小技巧,其他)