|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% U8 O( e0 O; V+ d) A7 ]/ j1 O
! k1 E; {+ M+ b7 H$ M5 r
我用一个调用函数来计算一个区间上的函数值并画图。此调用函数的输出是x = [x1; x2; x3];我想要把三个值的图像都画出来,编写的plot语句却都错了。错误信息:+ i5 G3 s7 {+ F
错误使用 plot。
& w7 ?! t( w( a: K" Q' s- M2 Q; s数据必须为可转换为双精度值的数值、日期时间、持续时间或数组。2 W& s' f2 C/ w7 x
* H$ Y# c4 D$ T3 x9 T
出错 Untitled3 (line 3)8 z2 g8 K: H [ M( Y
plot(y,c(:,1));9 C# |9 ?" y& I! \7 C# A
2 l* ~, k1 s, Z8 `2 V' H以下是程序,使用的64位R2018。" @+ h3 P, A/ q
y=9.9:0.01:10.1;: H5 x8 [3 S8 ?- w B1 m( _5 }8 i5 R
c=Solve3Polynomial(1,2.*k-20,power(k-10,2)+0.00005,-0.000001);7 U+ v+ v* s, Q4 w6 F! N
plot(y,c(:,1));
8 n" Z( t) ~6 p; {. I9 fplot(y,c(:,2));9 P! ~& l a. B; g' r+ f9 K
plot(y,c(:,3));
( J W4 M2 W) H2 Vfunction x = Solve3Polynomial(a,b,c,d)3 R9 I& V& X* ~; |
% 范盛金. 一元三次方程的新求根公式与新判别法[J]. 海南师范学院学报,1989,2(2):91-98.$ m1 X/ E7 P! ~4 L
syms x1 x2 x3;0 D& V; V# {. m
A = b.*b - 3.*a.*c; if abs(A) < 1e-14; A = 0; end' ?) r: N+ Y1 A& A, G
B = b.*c - 9.*a.*d; if abs(B) < 1e-14; B = 0; end
( h2 ?3 v* I7 X4 CC = c.*c - 3.*b.*d; if abs(C) < 1e-14; C = 0; end
- s3 b( V I& {$ FDET = B.*B - 4.*A.*C; if abs(DET) < 1e-14; DET = 0; end 7 P n g6 |2 K; { n% @9 f6 b
if (A==0)&(B==0)
% u' _5 I2 @3 J6 x) T x1 = -c./b; x2 = x1 ; x3 = x1;7 I; r% v% \9 ]7 Y) y
end
5 m3 O" \5 {; B2 `0 _6 |; nif DET > 0, T5 Z/ ^, v* }$ i0 n* L9 Q- w
Y1 = A.*b + 1.5.*a.*(-B + sqrt(DET));
# M( c& u+ X' a7 P& D3 p; I0 T$ | Y2 = A.*b + 1.5.*a.*(-B - sqrt(DET));
1 f, W( g8 l5 e3 w y1 = nthroot(Y1,3); y2 = nthroot(Y2,3);+ y# X/ C" J$ O9 [
x1 = (-b-y1-y2)./(3.*a);
6 A2 \( F4 V, D3 q vec1 = (-b + 0.5.*(y1 + y2))./(3.*a);
: ?9 T4 }5 m9 H" O3 B ~: J$ T vec2 = 0.5.*sqrt(3).*(y1 - y2)./(3.*a);1 P: ^2 }" S y3 l* a
x2 = 0;( o- L* }' j0 s8 y U3 T
x3 = 0;
/ _, p+ M0 v0 i/ I. M clear Y1 Y2 y1 y2 vec1 vec2;
: @4 @3 a# w: pend" T6 r7 ]0 L& D$ C, V
if DET == 0 & (A ~= 0) & (B ~= 0)
1 U) F, U3 P7 q. R K = (b.*c-9.*a.*d)./(b.*b - 3.*a.*c); K = round(K,14);
: h5 Q% B8 p0 i! l- s' G x1 = -b./a + K; x2 = -0.5.*K; x3 = x2;3 M! r) H+ m0 d" L, n: q
end
5 j w8 J3 l* v" m. Aif DET < 09 Y3 E, i* ?0 o2 V
sqA = sqrt(A);
. f5 ?0 T, }; c# d+ Z T = (A.*b - 1.5.*a.*B)./(A.*sqA); C) ~- I0 D2 @* F8 T1 S
theta = acos(T);" q( s% h" s/ I* I( i4 M
csth = cos(theta./3);! \* V7 f4 |4 o& x# Q& I
sn3th = sqrt(3).*sin(theta./3); {# n* k# _: i- ]
x1 = (-b - 2.*sqA.*csth)./(3.*a); o8 A; O, Y7 W$ P
x2 = (-b + sqA.*(csth + sn3th))./(3.*a);
, _4 y; u, s# s7 |% q& l x3 = (-b + sqA.*(csth - sn3th))./(3.*a);2 N0 Y% C1 c; p2 }; }
clear sqA T theta csth sn3th;
; k s6 F, e, z) |0 |( O" Bend& _' @ A+ [* k# y% i" I+ k
x = [x1; x2; x3];3 X1 C% b" ?2 B3 E
end1 |' j+ B2 z/ ~9 t+ v& F) o$ Z* J
6 t$ a+ n& ?2 o1 n5 m
麻烦大神帮忙指点一下,非常感谢! |
|