|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6 l* k, Y% c9 y& e9 P+ d4 ^7 o0 n( @
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1; x2; x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:; y G8 ~. L7 ?6 P' U$ U/ e
错误使用 plot。 d- X% B' z& w9 v1 x
数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。
) y3 L4 @ M8 D% K
% Z3 F7 ]5 Q* \, d6 S/ Z出错 Untitled3 (line 3)$ n! L* w; `% b( G! e
plot(y,c(:,1));0 b2 H: d. _! e# l
' F$ _6 v/ o) v0 v* R; l
以下是程序,使用的64位R2018。" [! N! `* a g1 h& n9 P
y=9.9:0.01:10.1;
# g6 r- @, o' D1 Z% Oc=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);- E' U8 H; Q! m8 k6 W. X
plot(y,c(:,1));
# z; X2 O! _4 \; e6 z" {( P' Q; bplot(y,c(:,2));
) j+ p8 q6 A( V9 z( J7 P6 {plot(y,c(:,3));
) M) b7 _ a4 y; B3 V9 Pfunction x = Solve3Polynomial(a,b,c,d)- d W8 m6 A* ?/ J
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98., z/ u5 Y2 G$ ~* t
syms x1 x2 x3;
8 K: y" S" i; e! n% wA = b.*b - 3.*a.*c; if abs(A) < 1e-14; A = 0; end
8 }2 ]9 O; P7 GB = b.*c - 9.*a.*d; if abs(B) < 1e-14; B = 0; end
' O6 M! e" l% j ]C = c.*c - 3.*b.*d; if abs(C) < 1e-14; C = 0; end
9 W: ^+ j2 Y( C& v* N) RDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14; DET = 0; end
7 z9 a3 f, U; E& Q- {if (A==0)&(B==0)
$ N) m( J, }8 N6 } x1 = -c./b; x2 = x1 ; x3 = x1;" L' W& {7 \0 H% u
end
! y% c$ z2 Z. s. l1 O: jif DET > 0" ?2 u# C5 G6 y" ]. o
Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
# ~$ |- Z2 O6 b% N7 x) ` Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));6 E: X8 B1 ?; I# r& p( |
y1 = nthroot(Y1,3); y2 = nthroot(Y2,3);
- X2 n* Z& p$ R x1 = (-b-y1-y2)./(3.*a);# I) O' ?* q/ ~
vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);
5 i6 k' k! I3 N8 |! X- e& ?" v vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);
4 h1 \/ U: ?. X, F x2 = 0;
/ q$ I. j4 V) @8 @) s- ?; Z u x3 = 0;
' g7 E% f. I5 H y+ h' W* Y clear Y1 Y2 y1 y2 vec1 vec2;
& j0 U' r2 U* tend V' h9 W9 d+ {) p* c' q3 i5 J+ n
if DET == 0 & (A ~= 0) & (B ~= 0). G& X- _) u$ D( B# a
K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);3 ^ e* g' N" ?4 D/ |
x1 = -b./a + K; x2 = -0.5.*K; x3 = x2;
* m! s! a# y# @, @end
3 m2 `4 p# p3 Y& ?9 p! a' pif DET < 0
# ?, i$ V+ I* P) N _2 Y sqA = sqrt(A);, k, x8 P1 n/ F/ q
T = (A.*b - 1.5.*a.*B)./(A.*sqA);
: I' ^. V: E; q! B" F; w! H- Z theta = acos(T);
' }/ z% B- y/ k0 @+ n; ^ csth = cos(theta./3);" x* @) ]) N) P4 ]7 D
sn3th = sqrt(3).*sin(theta./3);
" J$ ^5 V" |/ ]$ Q8 J) l" D x1 = (-b - 2.*sqA.*csth)./(3.*a);
2 R. K. f- J5 }# L9 T6 _2 P$ F* X x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
8 s% x# @8 @1 K$ f x3 = (-b + sqA.*(csth - sn3th))./(3.*a);
1 l8 t3 d$ ], r) t. m3 ^" a7 h clear sqA T theta csth sn3th;
( T" G- d" o6 Y# W7 j" r& h4 `end
3 O( W' H$ f/ o" q' Ox = [x1; x2; x3];
8 ^+ u6 Y# F9 W- E' o; Z' Bend' K, Y& d, n# e" s" p, P: d
3 l! X+ K( ]1 u! q6 B) s麻烦大神帮忙指点一下,非常感谢! |
|