首页 > 解决方案 > 在 MATLAB 中优化牛顿法

问题描述

我想在 MATLAB 中使用牛顿法优化问题,但是,我没有得到正确的答案。我希望有人能用我的代码给我。答案应该在 33.333 左右,但我得到 25。

clc; clear all; close all;

f = @(x) (5*sqrt(2))*(50-x)*(sqrt(2*x-50));  %Objective Function
df1 = @(x) - 10*(x - 25)^(1/2) - (5*(x - 50))/(x - 25)^(1/2);      % First Derivative
df2 = @(x) (5*(x - 50))/(2*(x - 25)^(3/2)) - 10/(x - 25)^(1/2);  % Second Derivative

K = 200;                 
x = 0;                    
Err = 0.0001;     

for i = 1:K               
    x = x - f(x)/df1(x);  
    j = i + 1;
    xx(j) = x;  

    err = abs(xx(j)-xx(j-1));   
    if err < Err
        break
    end
    z(i) = x;
end
x

标签: matlaboptimizationnewtons-method

解决方案


推荐阅读