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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

* p+ c2 x- h! f& e0 ~9 w- N5 \: F' e/ z* F' b0 [
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:1 M0 J% |, t! R6 [3 ?" g
错误使用 plot。) o) c6 L/ v' p* L
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。$ `5 i" K+ \5 T1 y$ A
& o& ~3 a7 P; B0 @1 E  c. W( P
出错 Untitled3 (line 3)/ U- \7 k9 Z/ l# V. E. |+ A
plot(y,c(:,1));
/ P9 ~' g/ c- L  h* [" i: C4 S$ e2 f, m  J* y& |( K4 S' z
以下是程序,使用的64位R2018。
0 L0 d, ]; [, j: v# uy=9.9:0.01:10.1;
8 g/ u/ B9 C( G, {c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);
' y& f( p# y0 f( i( Cplot(y,c(:,1));
" i1 s! i. q7 mplot(y,c(:,2));3 |) x) v# z. Q. k
plot(y,c(:,3));
! d" q+ w: O# S$ {1 }& L; ~function x = Solve3Polynomial(a,b,c,d)! Z6 J) h, _- Q6 o6 q5 P# b
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
! m3 A0 Q$ `. z, E. n8 tsyms x1 x2 x3;
0 u; v" F7 t" k" W% PA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
* I  {/ W6 V6 W3 p  f* ^0 wB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end; m* D2 n7 I& \1 [' W% i/ E
C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
0 w, o/ _0 O& a+ E8 M+ S9 M; gDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  + h& G8 x) X- |% k5 T; p
if (A==0)&(B==0)
" L3 q% @* K) C- B, d4 P7 o) v    x1 = -c./b;      x2 = x1 ;    x3 = x1;. _- E$ x( F2 c' g
end
+ |# D7 T8 c6 Y8 pif DET > 0+ P" [. A+ n+ A# e6 F$ C  ^
    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
) U/ l- G7 u+ d% A2 }    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));& K( A( y9 `$ i9 ?! ?; B, q3 v
    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);/ ?4 T& j( \' N, t9 d/ g, a" z0 ]  i
    x1 = (-b-y1-y2)./(3.*a);$ I- M! [2 {  _7 N4 a
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  ! c- Z6 F+ `* h: ~
    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);3 T2 @9 H$ {- v6 T( E
    x2 = 0;
0 N& Q: z8 I0 J/ W* ~6 {+ {    x3 = 0;7 a% S& w) P' x2 N9 m0 a$ ^" ]9 p+ J
    clear Y1 Y2 y1 y2 vec1 vec2;
, H6 `3 t: [- U2 vend
8 F6 l& M0 `5 \. L' d, Yif DET == 0 & (A ~= 0) & (B ~= 0)$ @1 _' O2 g( M. l; ]
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
8 M6 s. C# F: e/ x; h    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
, d; d. L/ a' ?4 v, D( n( Oend2 f! }- E) c* J0 i4 p3 z0 p/ a
if DET < 06 ~* A& `  k) }6 k( w2 B; G
    sqA = sqrt(A);
( Q& ?- X8 K. q    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
" Y) w' R5 l; j% X/ @9 n    theta = acos(T);
% f( W; M0 A! }) H" r    csth  = cos(theta./3);
! ^! W6 Q% y! {" P& ^  c$ f) p    sn3th = sqrt(3).*sin(theta./3);0 V6 K( I  J% O$ ]6 M; p
    x1 = (-b - 2.*sqA.*csth)./(3.*a);
1 E( n+ x# r: I# ?    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
  ^( v& e) @% B' b    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);  }0 j7 k6 A4 C3 N. u
    clear sqA T theta csth sn3th;: d( D, T' ^; G+ W" c% @* d- T1 d% ~
end* r- R) q/ A0 T5 {( i* z* v
x = [x1;  x2;  x3];
' `. g0 P- e) v. Wend
- j4 c6 Y8 s7 y7 d5 F8 A
* E' d4 b, F0 }9 |- p4 h5 h麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:14 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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