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

编写的plot语句报错了。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
' p+ v+ q- h$ x* O/ U
6 ^: U% e2 A4 ]
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1;  x2;  x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:$ x/ s5 `! `. J# ]4 K# Z
错误使用 plot。
: P4 N, l5 l: e0 j3 u" t数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。
% G* }& r6 t! n
- f2 H( O, F; `3 U0 o出错 Untitled3 (line 3)
1 P; }* f) B: ~  |7 Z1 J& yplot(y,c(:,1));
% R# ?0 i- ^- r' M" l+ k5 y% e* ?
& F" ~7 \" |' b. G以下是程序,使用的64位R2018。. i3 L' a0 [$ O0 i0 Z0 `
y=9.9:0.01:10.1;' Z8 b1 x( x6 K, ]
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);& k# _  E9 x) x5 B
plot(y,c(:,1));
, P0 {+ t- e* G% Tplot(y,c(:,2));
+ J  M1 Q. E: Z' R$ m' X( kplot(y,c(:,3));
! ?/ F& c# y& i7 n7 V+ qfunction x = Solve3Polynomial(a,b,c,d)' r. ^  _3 R7 {* V' L& t7 e& M( W
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.
0 K, Q8 Q- b! C" Q4 E% \+ @syms x1 x2 x3;
1 F4 A  n, d. N6 Q* q$ gA = b.*b - 3.*a.*c;   if abs(A) < 1e-14;    A = 0;  end  D. i* B! I! W/ ~. |
B = b.*c - 9.*a.*d;   if abs(B) < 1e-14;    B = 0;  end7 n) a/ J, z$ Q$ h" h3 J3 u
C = c.*c - 3.*b.*d;   if abs(C) < 1e-14;    C = 0;  end  , Q' ~5 M9 {. A5 U& `
DET = B.*B - 4.*A.*C; if abs(DET) < 1e-14;  DET = 0;  end  , b5 @6 Z6 y+ O+ T; W. D
if (A==0)&(B==0)
3 a: |% w, |- o% k; q7 Z, i' h0 w    x1 = -c./b;      x2 = x1 ;    x3 = x1;& E; T+ j- {; f1 |8 ^) r$ N
end+ \" w; o" x2 v0 T9 ^
if DET > 0
& o! ^9 O( _# ~: Y* P    Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
/ Y" u7 j- @. b; X/ R* V2 h    Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));6 f/ f# Y# N5 {2 c3 f+ S
    y1 = nthroot(Y1,3);  y2 = nthroot(Y2,3);
- S0 @' z. M! i/ K    x1 = (-b-y1-y2)./(3.*a);2 A8 t7 Q7 ], V- O
    vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);  . R- H# M* H$ D8 Z8 Z) B& a2 |3 [
    vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
1 D" D+ t2 X+ J( ], r    x2 = 0;
, v. ]0 w; Q* @    x3 = 0;( f2 l+ Y4 |. c1 |; e" j7 B
    clear Y1 Y2 y1 y2 vec1 vec2;$ R, |4 a. i4 z5 f! N2 i5 B5 M% v" X: M
end
! |+ T  e& K% E/ W4 R. M, [if DET == 0 & (A ~= 0) & (B ~= 0)9 `3 `6 y7 k) J, F: H
    K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
0 g4 p' k0 y# D% _    x1 = -b./a + K;   x2 = -0.5.*K;   x3 = x2;
5 w) s7 z) p% U1 G1 ?% ?end
2 @7 b0 z+ c+ K0 J" I% [- Z# u0 ?, tif DET < 07 j. Z5 I' f2 E  Q. A+ A% N
    sqA = sqrt(A);7 e" [/ u( |3 Y
    T = (A.*b - 1.5.*a.*B)./(A.*sqA);
* S: \) O2 ?3 L    theta = acos(T);
+ Z: ^8 J" Z& e    csth  = cos(theta./3);
) F. b0 m  Y3 |( K: Q8 \2 {# R7 Z$ C    sn3th = sqrt(3).*sin(theta./3);
' ?- t/ F+ ^; H) B6 m, N: }+ F    x1 = (-b - 2.*sqA.*csth)./(3.*a);8 b8 {0 o$ U7 E" ]
    x2 = (-b + sqA.*(csth + sn3th))./(3.*a);! T. [# T9 V( f1 F6 \: K/ i+ |! ^
    x3 = (-b + sqA.*(csth - sn3th))./(3.*a);  S5 N: E9 X9 o/ ~
    clear sqA T theta csth sn3th;# L1 v% o, p1 T; Y
end4 W( _7 v% d" l# y5 F! Z
x = [x1;  x2;  x3];
& ?- X! {: j. Q$ Z& h; D) Hend  [& b! F/ |5 y7 j9 J, \% C
5 h7 G5 X* F& `' U( L- T# f' b* {
麻烦大神帮忙指点一下,非常感谢!

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-30 14:50 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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