Hi please help me correct this error
2 ビュー (過去 30 日間)
古いコメントを表示
this is the error i am receiving while using the jacobian function,
Error using sym/subs>normalize
Inconsistency between sizes of
second and third arguments.
here is my code
------------------------------------------------------------------------
function [func, j] = sysNonlinearEqs(X) % X here is a vector
clc;
x = X(1)
y = X(2)
z = X(3)
%Define F(x)
syms x y z
func(1,1)= x + y - exp(-z); % Row 1 Column 1 of Vector F(x)
func(2,1)= z + x - exp(-y); % Row 2 Column 1 of Vector F(x)
func(3,1)= y + z - exp(-x); % Row 3 Column 1 of Vector F(x)
% Define Jacobian
J = jacobian(func, [x y z])
j = double(subs(J,{x, y, z}, X))
---------------------------------------------------------
i am trying to call my function in this script and the error message pops up
syms X
%global x y z
% Initial Conditions
X0 = [1; 1; 1];
maxiter = 50;
tolx = 1e-6;
%computation using the Newton Raphson Method
X= X0;
xold = X0;
for i = 1:maxiter
[func,j] = sysNonlinearEqs(X);
X = X- inv(j)*func;
err(:,i) = abs(X-xold);
xold = X;
if ( err(:,i) < tolx)
break;
end
end
0 件のコメント
採用された回答
Jonathan Chin
2017 年 10 月 12 日
function [func, j] = sysNonlinearEqs(X)
% X here is a vector clc;
% x = X(1); y = X(2); z = X(3) ;
%Define F(x)
syms x y z
func(1,1)= x + y - exp(-z); % Row 1 Column 1 of Vector F(x)
func(2,1)= z + x - exp(-y); % Row 2 Column 1 of Vector F(x)
func(3,1)= y + z - exp(-x); % Row 3 Column 1 of Vector F(x)
% Define Jacobian
J = jacobian(func, [x y z]) ;
j = double(subs(J,{x, y, z}, X(:).')); %<- X here needs to be in row vector format
2 件のコメント
Jonathan Chin
2017 年 10 月 14 日
err(:,i) is a system of equations, you might need to evaluate those values
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!