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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

  X8 P9 O  m, O" z. v
$ W# B0 g& B, V' K1 A我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:
+ Y* w$ B6 ^+ a) I错误使用 plot。
& V/ ]9 B1 z- H/ p0 h7 R数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。* i0 ]4 |: C. W2 U) W. U0 U1 `2 ]

) ^( _  y; n1 b出错 Untitled3 (line 3)
! F8 w# U: L' Y. M/ Oplot(y,c(:,1));8 s1 l5 S, u  ]0 m9 ~! Q' r# F) j
% j4 I% L5 z% W
以下是程序,使用的64位R2018。
4 I% }% t( {& F9 Iy=9.9:0.01:10.1;$ Q! [, U7 R! ]: S; X0 D  B$ i
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);/ w! X$ |1 B( }6 \/ j6 V! q& C/ }
plot(y,c(:,1));1 s7 N- I3 N* f. W
plot(y,c(:,2));
& m- w# @% ?% G0 n& Eplot(y,c(:,3));
- Z7 a9 [; w. u1 sfunction x = Solve3Polynomial(a,b,c,d)  h) ~" j- c) R
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.& [% ~, O  n3 T! A% x' `8 b; t4 O; _
syms x1 x2 x3;1 _2 Y  n% F0 S1 ?: O* Y  }
A = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end  z- ?9 Y3 i- {5 ?
B = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end
: t4 i1 |1 N# `- i  v! z0 K  W  NC = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  
/ `* D! t; R, ]% t: |& IDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  
5 e" t4 J- e" R9 ^% L% {! B: qif (A==0)&(B==0)
% d2 K9 b" a, W; Q7 T    x1 = -c./b;      x2 = x1 ;    x3 = x1;
! `7 s) b" O8 e" vend
9 i9 X( c$ z6 |6 {- U9 Y6 w0 bif DET > 0% w0 N& }7 C4 f) e! X; r* U9 g
    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));5 _2 A  A2 R# W3 \4 ^6 u
    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
( D2 a' P, J3 [    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);$ B2 H7 |" ~2 v* z8 h1 W
    x1 = (-b-y1-y2)./(3.*a);
: }/ Q( l! R" \    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  
* D. o! D3 i% o- p' e    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
, ]4 ?  p5 @  K5 }6 J' z    x2 = 0;  g& D4 `" o) \! Y# g6 T6 K
    x3 = 0;
( ^9 \0 e* S, \/ i, h# _9 |    clear Y1 Y2 y1 y2 vec1 vec2;
) m+ J7 D2 O; c& z" P" i+ `, E' xend
' M4 L( H2 m; U3 Vif DET == 0 & (A ~= 0) & (B ~= 0)6 |; `+ |# H9 ]
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);0 Y. P+ Y  F5 T3 C! d) p
    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;' s! K" H/ q+ g/ ?" _
end
# w0 U+ a" ?/ {5 Y; Fif DET < 0: u* n( @) f4 a  v4 [* ^
    sqA = sqrt(A);
6 z1 Q$ [. b5 n/ ^1 Q    T = (A.*b - 1.5.*a.*B)./(A.*sqA);* [( n+ @  ?3 I+ c
    theta = acos(T);
" `; w7 \: ^& a1 R/ S    csth  = cos(theta./3);+ ~$ A5 l9 ^+ c; a1 X$ b5 T+ Q
    sn3th = sqrt(3).*sin(theta./3);/ b$ n) V2 B' S" j7 C- T; G
    x1 = (-b - 2.*sqA.*csth)./(3.*a);
, Y- ^9 c1 ~7 G( m6 ]    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);7 ^3 K1 @( K$ w" Y: o: m+ X' Z' y  w
    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);. g  z: d2 Q$ ~$ T% q
    clear sqA T theta csth sn3th;
6 H- b& k" W1 r3 G9 Z; p! n3 xend
6 V2 M$ S% f" }9 F4 @x = [x1;  x2;  x3];
# T, y9 j8 E3 Z5 C+ i& Q/ s' ]! eend
# x, K# l$ F! w" H) u% k0 a' W, U% G! _# l5 |
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:46 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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