MATLAB Answers

VPA > While converting from 'sym': The conversion returned a value of class 'matlab.mi​xin.Hetero​geneous', which cannot be inserted into an array of class 'matlab.gr​aphics.ill​ustration.​ColorBar'.

1 view (last 30 days)
Meva
Meva on 26 Aug 2016
Hi,
This interesting error is caused from the following code:
x0 = [.1, .1];
options = optimoptions('fsolve','Display','iter');
dt=0.01;
Nt=0.1/dt+1;
Tarray = [0:dt:0.1];
T = 0;
for nt=1:Nt
T=T+dt;
X = sym('x', [1,2]);
F = torder1(X,T);
sols = vpasolve(F, X);
h(nt) = sols.x1;
theta(nt) = sols.x2;
end
for nt=1:Nt
plot(Tarray,h(nt),'*')
hold on
plot(Tarray,theta(nt),'+')
end
This uses below function
function F=torder1(x,T)
x_1=[0:0.01:1];
b=0.6;
clear x_1;
syms x_1 h theta
kappa =1;
f_11 = 1-( (h+(x_1-b)*theta)^2/(h+(x_1-b)*theta-1*x_1*(1-x_1))^2 );
f_21 = (x_1-b)/2*( 1-( (h+(1-b)*theta)^2/(h+(x_1-b)*theta-x_1*(1-x_1))^2 ));
fint_1 = int(f_11, x_1);
fint_2 = int(f_21, x_1);
x_1=1;
upper_1=subs(fint_1);
upper_2=subs(fint_2);
clear x_1;
x_1=0;
lower_1=subs(fint_1);
lower_2=subs(fint_2);
clear x_1;
integral_1old=upper_1-lower_1;
integral_2old=upper_2-lower_2;
h0 = kappa *b*(1-b);
theta0 = kappa*(1-2*b);
integral_1 = subs(integral_1old, {h, theta}, {x(1), x(2)});
integral_2 = subs(integral_2old, {h, theta}, {x(1), x(2)});
F = [vpa(x(1) - integral_1*T^2 -h0); vpa(x(2) - integral_2*T^2 - theta0)];
I know the error is related to the index of my for loop (nt).
Any help will be appreciated. Thanks.

  0 Comments

Sign in to comment.

Answers (0)

Sign in to answer this question.


Translated by