Error using dsolve, any help would be greatly appreciated

조회 수: 1 (최근 30일)
Michael
Michael 2015년 4월 29일
편집: Walter Roberson 2015년 7월 8일
Hi there, I'm having trouble using dsolve with symbolic functions; when I try to run I'm receiving an error stating:
"Warning: Explicit solution could not be found.
> In dsolve (line 201)
In VK3 (line 9)
Error using sym/subsasgn (line 832)
Invalid indexing or function definition. When defining a function, ensure that the arguments are symbolic variables
and the body of the function is a SYM expression. When indexing, the input must be numeric, logical, or ':'."
Here's my code as it stands. I appreciate this may seem stupid to some, but I have relatively little experience with matlab, and if anyone would be kind enough to tell me where I'm going wrong, I'd be very greatful.
syms F(n) G(n) H(n)
c = 1.004e-6;
m = input('Angular Velocity = ');
z = linspace(0,20,20);
r = input('Radial Distance = ');
n = z*sqrt(m/c);
[F(n), G(n), H(n)] = dsolve(diff(F,2) == -G*2 + F*2 + diff(F)*H,...
diff(G,2) == 2*F*G + H*diff(G),...
diff(H) == -2*F,...
F(0) == 0, H(0) == 0, G(0) == m*r, F(20) == 0, G(20) == 0);
U = m*r*F(n);
V = m*r*G(n);
W = sqrt(m/v)*H(n);
subplot(1,3,1)
plot(U,n), xlabel('U'), ylabel('z'),...
title('Radial Velocity Component')
subplot(1,3,2)
plot(V,n), xlabel('V'), ylabel('z'),...
title('Azimuthal Velocity Component')
subplot(1,3,3)
plot(W,n), xlabel('W'), ylabel('z'),...
title('Axial Velocity Component')

답변 (1개)

RahulTandon
RahulTandon 2015년 7월 7일
편집: Walter Roberson 2015년 7월 8일
%{
diff(F,2) == -G*2 + F*2 + diff(F)*H,...
diff(G,2) == 2*F*G + H*diff(G),...
diff(H) == -2*F,...
F(0) == 0, H(0) == 0, G(0) == m*r, F(20) == 0, G(20) == 0
%}
%%SECTION 1
% REPHRASING YOU PROBLEM
syms z n m r c F(n) G(n) H(n)
c = 1.004e-6;
m = 200*pi ; % sample value; input('Angular Velocity = ');
r = 10000; % sample value; input('Radial Distance = ');
str1 = 'D2F ==-2*G + 2*F + H*DF';
str2 = 'DH == -2*F';
str3 = 'F(0) == 0';
str4 = 'G(0) == m*r';
str5 = 'F(20) == 0';
str6 = 'G(20) == 0';
str7 = 'D2G == 2*F*G + H*DG';
clc;
for z = linspace(0,20,20)
n = z*sqrt(m/c);
[F, G, H] = dsolve(str7,str1, str2, str3, str4, str5, str6,'n')
end

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by