matlab用了solve,结果是sym啊,怎么看具体数值

代码如下:t1=0:0.001:pi/6;t2=pi/16:0.001:2*pi/3;t3=2*pi/3:0.001:5*pi/6;t4=5*pi/6:0.001:pi;... 代码如下:
t1=0:0.001:pi/6;
t2=pi/16:0.001:2*pi/3;
t3=2*pi/3:0.001:5*pi/6;
t4=5*pi/6:0.001:pi;
t5=pi:0.001:3*pi/2;
t6=3*pi/2:0.001:5*pi/3;
y1=(pi/2)-sin(6*t1)/24 + (0.5*t1)/2;
y2=11*pi/24+t2/2;
y3=15*pi/24 + t3/4 + sin(6*t3)/24;
y4=25*pi/24-sin(6*t4)/24-t4/4;
y5=31*pi/24-(t5)/2;
y6=22*pi/24-t6/4+sin(6*(t6))/24;
t=[t1,t2,t3,t4,t5,t6];
y=[y1,y2,y3,y4,y5,y6];
x=solve('465*sin(x)+200=120*cos(t*1.2+pi/3)+369*sin(x-y)','x');
展开
 我来答
lhmhz
高粉答主

2017-10-31 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

运行了你的程序,存在着下列几个问题:

1、用下列这个代码求解,其t、y值是无法代入方程的。

x=solve('465*sin(x)+200=120*cos(t*1.2+pi/3)+369*sin(x-y)','x');

所以软件会提示有关sym的信息。

2、如要显示x值,其该语句最后不能有分号()。

由于你给出的t、y值是以一组向量形式存放的,因此要计算你的x值必须要用循环语句(如for。。。end语句)来求解。

需要在t、y值后面增加如下代码:

n=length(t);

x=zeros(n,1);

for i=1:n

    syms x1

    t1=t(i);y1=y(i);

    x(i)=vpasolve(465*sin(x1)+200==120*cos(t1*1.2+pi/3)+369*sin(x1-y1));

end

x

运行结果形式



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式