查看: 5942|回复: 8|关注: 0

[已解决] 警告: 复数 X 和/或 Y 参数的虚部已忽略

[复制链接]

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
本帖最后由 十里东风化 于 2019-12-24 21:27 编辑

syms t;
p=pi/3*t;
h=90*sin(pi/3*t);
x2=(470^2*h)^(1/2);
x1=90*cos(pi/3*t);
s=x1+x2;
s2=diff(s,t,1);
s3=diff(s2,t,1);
t=0:0.01:6;
s1=eval(s);
s2=eval(s2);
s3=eval(s3);
figure(1);
plot(t,s1);
xlabel('时间t')
ylabel('位移x')
title('位移-时间曲线')  
figure(2);
plot(t,s2);
xlabel('时间t ')
ylabel('速度v')
title('速度-时间曲线')  
figure(3);
plot(t,s3);
xlabel('时间t ')
ylabel('加速度a')
title('加速度-时间曲线')
请问为什么会报错,报错内容为(红色字体处):
警告: 复数 X 和/或 Y 参数的虚部已忽略
> In qubinghuakuai (line 14)
警告: 复数 X 和/或 Y 参数的虚部已忽略
> In qubinghuakuai (line 19)
警告: 复数 X 和/或 Y 参数的虚部已忽略
> In qubinghuakuai (line 24)

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1638

帖子

347

最佳答案
  • 关注者: 81
发表于 2019-12-25 09:16:02 | 显示全部楼层 |此回复为最佳答案
将s1=eval(s);
s2=eval(s2);
s3=eval(s3);
改为
s1=real(eval(s));
s2=real(eval(s2));
s3=real(eval(s3));
试试
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-12-25 09:19:02 | 显示全部楼层
20141303 发表于 2019-12-25 09:16
将s1=eval(s);
s2=eval(s2);
s3=eval(s3);

虽然已经不再报错了,但是画出来的图像仍然与之前报错的图像一致.....
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1638

帖子

347

最佳答案
  • 关注者: 81
发表于 2019-12-25 09:26:41 | 显示全部楼层
图像由你定义的函数决定,如果图像不对,只能是你定义的函数与实际要画的函数不一致,自己仔细检查检查
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-12-25 09:27:55 | 显示全部楼层
20141303 发表于 2019-12-25 09:26
图像由你定义的函数决定,如果图像不对,只能是你定义的函数与实际要画的函数不一致,自己仔细检查检查 ...

好的,感谢:loveliness:
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

0

主题

2265

帖子

351

最佳答案
  • 关注者: 64
发表于 2019-12-25 09:43:49 | 显示全部楼层
你计算出来的数值虚部太小,所以被忽略,一般都是取有具体物理意义的解
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2020-7-3 11:17:42 | 显示全部楼层
20141303 发表于 2019-12-25 09:16
将s1=eval(s);
s2=eval(s2);
s3=eval(s3);

n=240;
x=zeros(4,n);
y=zeros(4,n);
dt=0.05;
v=10;

x(1,1)=100;y(1,1)=0;
x(2,1)=0;y(2,1)=0;
x(3,1)=0;y(3,1)=0;
x(4,1)=100;y(4,1)=100;

for i=2:n
   for j=1:3
   d=sqrt((x(j+1,i-1)-x(j,i-1)^2+(y(j+1,i-1)-y(j,i-1))^2));
   cosx=(x(j+1,i-1)-x(j,i-1))/d;
   sinx=(y(j+1,i-1)-y(j,i-1))/d;
   x(j,i)=x(j,i-1)+v*dt*cosx;
     y(j,i)=y(j,i-1)+v*dt*sinx;
   end%
     d=sqrt((x(1,i-1)-x(4,i-1))^2+(y(1,i-1)-y(4,i-1))^2);
     cosx=(x(1,i-1)-x(4,i-1))/d;
     sinx=(y(1,i-1)-y(4,i-1))/d;
     x(4,i)=x(4,i-1)+v*dt*cosx;
     y(4,i)=y(4,i-1)+v*dt*sinx;
end
   %plot(x,y)
   for j=1:n
     29行  plot(x(1,j),y(1,j),x(2,j),y(2,j),x(3,j),y(3,j),x(4,j),y(4,j))
       hold on
   end 大佬康康我
和他这个一样29行报错警告: 复数 X 和/或 Y 参数的虚部已忽略
> In Untitled (line 29)
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


0

主题

2

帖子

0

最佳答案
发表于 2020-7-3 11:18:22 | 显示全部楼层
20141303 发表于 2019-12-25 09:16
将s1=eval(s);
s2=eval(s2);
s3=eval(s3);

n=240;
x=zeros(4,n);
y=zeros(4,n);
dt=0.05;
v=10;

x(1,1)=100;y(1,1)=0;
x(2,1)=0;y(2,1)=0;
x(3,1)=0;y(3,1)=0;
x(4,1)=100;y(4,1)=100;

for i=2:n
   for j=1:3
   d=sqrt((x(j+1,i-1)-x(j,i-1)^2+(y(j+1,i-1)-y(j,i-1))^2));
   cosx=(x(j+1,i-1)-x(j,i-1))/d;
   sinx=(y(j+1,i-1)-y(j,i-1))/d;
   x(j,i)=x(j,i-1)+v*dt*cosx;
     y(j,i)=y(j,i-1)+v*dt*sinx;
   end%
     d=sqrt((x(1,i-1)-x(4,i-1))^2+(y(1,i-1)-y(4,i-1))^2);
     cosx=(x(1,i-1)-x(4,i-1))/d;
     sinx=(y(1,i-1)-y(4,i-1))/d;
     x(4,i)=x(4,i-1)+v*dt*cosx;
     y(4,i)=y(4,i-1)+v*dt*sinx;
end
   %plot(x,y)
   for j=1:n
     29行  plot(x(1,j),y(1,j),x(2,j),y(2,j),x(3,j),y(3,j),x(4,j),y(4,j))
       hold on
   end 大佬康康我
和他这个一样29行报错警告: 复数 X 和/或 Y 参数的虚部已忽略
> In Untitled (line 29)
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1638

帖子

347

最佳答案
  • 关注者: 81
发表于 2020-7-3 17:06:32 | 显示全部楼层
安然_lwVdr 发表于 2020-7-3 11:18
n=240;
x=zeros(4,n);
y=zeros(4,n);

仅供参考
  1. n=240;
  2. x=zeros(4,n);
  3. y=zeros(4,n);
  4. dt=0.05;
  5. v=10;

  6. x(1,1)=100;y(1,1)=0;
  7. x(2,1)=0;y(2,1)=0;
  8. x(3,1)=0;y(3,1)=0;
  9. x(4,1)=100;y(4,1)=100;

  10. for i=2:n
  11.    for j=1:3
  12.    d=sqrt((x(j+1,i-1)-x(j,i-1)^2+(y(j+1,i-1)-y(j,i-1))^2));
  13.    cosx=(x(j+1,i-1)-x(j,i-1))/d;
  14.    sinx=(y(j+1,i-1)-y(j,i-1))/d;
  15.    x(j,i)=x(j,i-1)+v*dt*cosx;
  16.      y(j,i)=y(j,i-1)+v*dt*sinx;
  17.    end%
  18.      d=sqrt((x(1,i-1)-x(4,i-1))^2+(y(1,i-1)-y(4,i-1))^2);
  19.      cosx=(x(1,i-1)-x(4,i-1))/d;
  20.      sinx=(y(1,i-1)-y(4,i-1))/d;
  21.      x(4,i)=x(4,i-1)+v*dt*cosx;
  22.      y(4,i)=y(4,i-1)+v*dt*sinx;
  23. end
  24. x=real(x);
  25. y=real(y);

  26. plot(x(1,:),y(1,:),x(2,:),y(2,:),x(3,:),y(3,:),x(4,:),y(4,:))
复制代码
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表