怎样用matlab求一元线性函数极值f=sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 17:22:49
怎样用matlab求一元线性函数极值f=sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2怎样用matlab求一元线性函数极值f=sqrt(5^2+(8-x)^

怎样用matlab求一元线性函数极值f=sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2
怎样用matlab求一元线性函数极值
f=sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2

怎样用matlab求一元线性函数极值f=sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2
clear; %%%%% 清变量
clc; %%%%% 清屏幕
syms x; %%%% 定变量
f = sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2; %%%% 变量表达式
y = @(x) sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2; %%%% 句柄函数
df = diff(f); %%%% 求微分
xz = solve(df); %%%% 求极值点
[m,n] = size(xz); %%%% 求极值点个数
d2f = diff(f,2); %%%% 求二阶微分,以判断极大极小
for ii = 1:n %%%% 对每个极值点进行判断
z(ii) = limit(d2f,x,xz(ii)); %%%%% 求二阶微分在极值点的极限
%temp = vpa(z(ii));
temp = double(z(ii)); %%%%% 转成数值判断
if temp>0 %%%%% 二阶微分大于零,是极小值点
fprintf('find a minimum point x = %f,and the minimum value is f(%f) = %f\n',temp,temp,y(temp));
elseif temp0 %%%%% 二阶微分大于零,是极小值点
fmin = double(limit(f,x,xz));
fprintf('find a minimum point x = %f,and the minimum value is f(%f) = %f\n',temp,temp,fmin);
elseif temp> syms x;
>> f = sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2;
>> ezplot(f,[-10,10])

matlab?太猛了点吧