找回密码
 注册
关于网站域名变更的通知
查看: 479|回复: 1
打印 上一主题 下一主题

编写的plot语句报错了。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-25 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

' N+ y! Z$ j/ M* O- U# b$ i6 J) u7 d; s- y0 Z
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:" Z/ q3 g* V5 a  o# W- p
错误使用 plot。. u* \, ]8 Y; x2 V4 C
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。( a) X, D8 A1 x4 c
7 U  \! Z  s+ S4 ?8 s
出错 Untitled3 (line 3)
) B9 ^/ `4 k* F5 ~plot(y,c(:,1));2 n  ~: C1 S* `# ]: E  ^

' H; j* R, |" e以下是程序,使用的64位R2018。
( c/ L3 [6 v$ E  P  r* Py=9.9:0.01:10.1;
$ z+ N0 u" p4 q1 z) n3 m2 pc=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);1 h% \' a$ M  J+ d, y  A
plot(y,c(:,1));
& K9 Z& d" r: Tplot(y,c(:,2));6 o. A4 V3 q2 m
plot(y,c(:,3));
! R9 e. M# X" H6 rfunction x = Solve3Polynomial(a,b,c,d)3 S2 N- ?! l1 N" ]) u) L
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.8 h9 Z" T: f: U: t4 Y9 G
syms x1 x2 x3;
( I) A: b2 h+ J; W! G% NA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
. {% l4 q1 D" }, G8 }B = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end0 q( D$ C' j0 @4 C* [
C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
5 |$ n# ]! `; {6 i$ n% e2 tDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
  A/ n8 |; g5 P4 N8 Q, |3 @+ Xif (A==0)&(B==0)
2 D% W8 U+ c8 P    x1 = -c./b;      x2 = x1 ;    x3 = x1;/ U# c1 H. C4 D9 C0 A: _
end
1 F' b% i) q  {. `( I. x+ y, N0 dif DET > 0
; I- M8 {4 k4 E) x0 w  t# B    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
  j6 ^' B/ r" T# ^& S4 }    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));& D' i8 ~. [3 W* P. y
    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);/ j1 K) L% P; S+ H3 R* C: M
    x1 = (-b-y1-y2)./(3.*a);! V0 ~9 h5 v6 C& W) v
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  . Z8 @6 E) k5 a/ d5 h9 q6 i+ {- w
    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);0 o2 p( ~6 |3 |
    x2 = 0;7 @7 {- c% b7 z& W2 @
    x3 = 0;% r$ g2 q. C7 K( C# k
    clear Y1 Y2 y1 y2 vec1 vec2;
# s5 j9 a3 w6 dend9 F$ W. j6 h* O: F. E4 K2 l5 d
if DET == 0 & (A ~= 0) & (B ~= 0)
+ l, F/ e5 G! m    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);' k* D. Z- t( R6 }* y8 r
    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
; V6 T5 o8 @# Z9 L0 M& ?end
! P: w" d0 _- H$ }6 Kif DET < 0
) i! R/ B% Z" K+ ~    sqA = sqrt(A);0 @1 J3 M; v* k0 \9 Z: e( t
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);8 O, C/ O5 P! j. j6 t  @
    theta = acos(T);* c8 z% L* h4 {# \) C# ~9 T- U
    csth  = cos(theta./3);! ~8 y+ k. G5 @/ c# Y, b) y
    sn3th = sqrt(3).*sin(theta./3);
8 m; ]% X3 D; R( N8 A$ x    x1 = (-b - 2.*sqA.*csth)./(3.*a);6 ~( K! J- m+ {; ~! @
    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
0 Q2 w# h  J) g5 ~    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
9 d2 X3 q) v, U- c( Z3 v    clear sqA T theta csth sn3th;1 L9 _) }9 h9 s$ Z& [# ]% z
end
  _7 \/ k) b3 f" j- R1 mx = [x1;  x2;  x3];
/ j( v% C0 D5 E1 Eend% T6 C' f, k. a4 K2 q
1 `8 _0 U5 m# B0 |
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

2#
发表于 2020-11-25 18:40 | 只看该作者
提示说,数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。 所以你的数据是什么类型?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-1 06:54 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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