|
|
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 |
麻烦大神帮忙指点一下,非常感谢! |
|