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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
0 l6 Y* Q5 u% w! l
5 ~0 q5 [+ `' F4 S, U' a  z, T
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:! g% `" i$ L3 |' _$ j6 [7 o  q
错误使用 plot。7 }  W& X& c8 C% P4 E
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。; |* o( M6 \. n0 R7 }, T
$ W( ]) `, F' _( R
出错 Untitled3 (line 3)$ Y: b9 G" V! K$ [
plot(y,c(:,1));7 j& T" ^: U8 m; U7 C6 ]8 K
6 L$ D$ z  o( Q; l1 r5 b
以下是程序,使用的64位R2018。
' t/ O. @( E! Oy=9.9:0.01:10.1;9 h- V' G2 u- Y- @; ]1 h
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);% R& D: g" S& i' R4 C' e) W6 Z, t
plot(y,c(:,1));
# ^" Q, z! n( V  O; ]1 [9 \, ^plot(y,c(:,2));
$ t+ |# H/ P! t0 l% Cplot(y,c(:,3));
# [" }' `% D# O3 f! z( Sfunction x = Solve3Polynomial(a,b,c,d)
7 e; v% s; n8 O9 c3 r7 l% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
  Q5 i; K( y- A  [  R. K0 hsyms x1 x2 x3;" j7 d- x$ P' U6 d" }' w) p
A = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end
, _5 ]& x  H! O/ EB = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end
) ~7 U4 ?- j" b8 l- _/ B$ uC = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  9 ]- D6 d5 X* |/ o0 s9 x+ W3 l, v% N+ C
DET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
4 I# o5 D8 V0 P& K4 \if (A==0)&(B==0)4 n! V7 L9 Z4 y. }* w$ W- b1 M
    x1 = -c./b;      x2 = x1 ;    x3 = x1;# `& D+ Q- g4 L  s; @7 W
end* b4 T' ^& E" R) K4 M( [
if DET > 0
" h% [5 X! @" `6 ?    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));- k  K+ S8 F5 m7 x
    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
" F- a5 L. M' z) Y( y2 H% N2 O, p    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);
1 s& P& K6 i% H4 R/ {' k' P0 L    x1 = (-b-y1-y2)./(3.*a);1 v# ^4 y" m6 r
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  5 o2 P6 J: `2 @5 h
    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);2 Z3 D2 N7 j% p: q. ]
    x2 = 0;( @* n  Q& m5 ?+ f
    x3 = 0;& c) F8 b& T" Z% \, O3 m
    clear Y1 Y2 y1 y2 vec1 vec2;2 f! H/ o, P2 O; b2 Y2 {6 ?$ _  W
end
! a6 m# u0 \# @3 j) Q, [+ W- Lif DET == 0 & (A ~= 0) & (B ~= 0)5 ~1 L9 D% w2 c6 ]4 s4 P
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
7 B4 j# `! h- @- ?7 T" V! X, X    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
$ B, B0 c3 p3 c. iend9 B% |5 v+ L" r9 Y
if DET < 0
; b% v( D" ?9 d3 H    sqA = sqrt(A);4 @- C; A2 T1 @, O# D2 ~
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);; [+ t" h; l$ y4 T7 J, [
    theta = acos(T);  [2 ]. r" M' s: y
    csth  = cos(theta./3);
5 Y( H. \/ a1 A    sn3th = sqrt(3).*sin(theta./3);8 J  ~% O2 r) c0 x5 X3 h$ h
    x1 = (-b - 2.*sqA.*csth)./(3.*a);
& B- i; @( e9 z6 }( W9 B6 d) n    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
" h2 y. C- O" B( V1 p    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
- A) O  \, @* V6 X1 l    clear sqA T theta csth sn3th;% o' `8 g6 r  s9 P* S* u, ^
end
9 Y* {) `  e' U6 |8 ux = [x1;  x2;  x3];' K- ^' R0 n6 |2 W" a0 U$ L6 E1 ?4 \
end, o) }$ l6 h6 Z" P+ A! L% d# L

; _/ u( t- E3 }. u6 R0 j' k麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 21:04 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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