handles for functions of several variables
16 次查看(过去 30 天)
显示 更早的评论
Im trying to make function handles that make it possible to calculate functions with different values for x1 and x2, but I cannot make it work. Please help?
(This is not the entire code, and it is split into two files)
syms x1 x2
x0 = [-1; -1];
f = @f_function;
J = @J_function;
X = NewtonsMethod(f, J, x0, lim, N)
function f = f_function(x)
f=[(x1*x2-2);
((x1.^4/4) + (x2.^3/3) -1)];
end
function J = J_function(x)
J = jacobian(f, [x1,x2]);
end
File:NewtonsMethod
xn = x0; % initial estimate
n = 1; % iteration number
fn = f(xn); % save calculation
iterate = norm(fn,Inf) > tol;
while iterate
xn = xn - J(xn)\fn;
n = n+1;
X(:,n) = xn;
fn = f(xn);
0 个评论
采纳的回答
Walter Roberson
2021-3-19
syms x1 x2
x0 = [-1; -1];
fsym = f_function(x1,x2);
f = matlabFunction(fsym, 'vars', {[x1, x2]})
J = matlabFunction(jacobian(fsym), 'vars', {[x1, x2]})
X = NewtonsMethod(f, J, x0, lim, N)
function f = f_function(x1,x2)
f=[(x1*x2-2);
((x1.^4/4) + (x2.^3/3) -1)];
end
更多回答(1 个)
Jan
2021-3-18
编辑:Jan
2021-3-18
Do you get an error message?
What is x1 and x2 in your functions "f_function" and "J_function"? Do you mean: x(1) and x(2) ?
Be careful with the unary minus in vectors:
f=[(x1*x2-2);
((x1.^4/4) + (x2.^3/3) -1)];
% ^
This can confuse the parser. See:
[1 1] % [1, -1]
[1 -1] % [1, -1]
[1 - 1] % [2]
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interpolation 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!