matlab循环求泰勒展开式的值中sym无法转换为logical,(新手上路)

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

你好同学,看了你的代码,你应该是将sin(x)泰勒展开,然后看在哪一阶展开的精度恰好满足误差小于0.00000001的要求。
红色错误是因为你的sym不能直接跟double类型的变量比较大小,需要转化成double就可以比较了
代码更正如下


syms x;
err = 1; % 先预定义一个误差
y0 = 2; % 预定义一个y0用于比较
for i = 1:2:100 % 为了避免奇偶一致的泰勒展开,建议都按照奇数来(sin(x)是奇函数)
    y1 = taylor(sin(x),x,0,'order',i);
    y2 = eval(subs(y1,x,7));
    err = abs(y0-y2); %计算误差
    if(err<0.00000001) % 如果满足精度要求就终止循环
        fprintf('展开到了第%d项满足了精度要求\n',i)
        break;
    end
    y0 = y2;
end

结果为

展开到了第35项满足了精度要求

语法不对。参考一下知乎: