matlab - 在 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
解决方案
推荐阅读
- php - 如何在php中对具有第一个数组顺序和第二个数组的2个关联数组进行排序
- c# - 如何使用 Xamarin(Android) 将 VCard 添加到联系人?
- java - 手动 Spring 启动 SQL 脚本
- javascript - 如何在xml中获取孩子?
- php - 一个主题自定义选项页面,在另一个主题自定义选项菜单页面中删除值
- html - 为什么我的网页宽度没有填满整个屏幕宽度?
- python - 使用 mongo 和 djongo 的 django API 上的 id null
- flutter - Flutter SliverList 在加载图像时冻结
- sql - wors 如何与 sum 合并函数
- javascript - 如何将对象字符串转换为对象