MATLAB 中的非线性求根
Nonlinear root finding in MATLAB
function y = f(z)
b=10;
y=(cos(z))+(b*(sin(z)/z))-cos(d);
这是我的函数文件。
fun = @f; % function
x0 = 1; % initial point
z = fzero(fun,x0);
虽然 运行 以上代码我只得到一个值。但我需要的是一组满足
的值
(cos(z))+(b*(sin(z)/z))-cos(d)=0
其中:d=-5:1:5
请帮忙
您可以使用不同的初始点。这个过程可以自动化:
solutions= zeros(1,100);
for k= 1:numel(solutions)
x0= (rand-0.5)*20; % generate the random initial point in (-10,10)
z = fzero(@f,x0);
solutions(k)= z;
end
disp(unique(solutions))
由于求解器的准确性,结果可能包含相同的解。
寻找初始点的另一种方法is described here
function y = f(z)
b=10;
y=(cos(z))+(b*(sin(z)/z))-cos(d);
这是我的函数文件。
fun = @f; % function
x0 = 1; % initial point
z = fzero(fun,x0);
虽然 运行 以上代码我只得到一个值。但我需要的是一组满足
的值(cos(z))+(b*(sin(z)/z))-cos(d)=0
其中:d=-5:1:5
请帮忙
您可以使用不同的初始点。这个过程可以自动化:
solutions= zeros(1,100);
for k= 1:numel(solutions)
x0= (rand-0.5)*20; % generate the random initial point in (-10,10)
z = fzero(@f,x0);
solutions(k)= z;
end
disp(unique(solutions))
由于求解器的准确性,结果可能包含相同的解。
寻找初始点的另一种方法is described here