问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用matlab求一元线性函数极值

发布网友 发布时间:2022-04-22 05:24

我来回答

2个回答

热心网友 时间:2023-05-18 07:34

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 temp<0 %%%%% 二阶微分小于零,是极大值点
fprintf('find a maxima point x = %f,and the maxima value is f(%f) = %f\n',temp,temp,y(temp));
end
end

结果:
find a minimum point x = 5.770419,and the minimum value is f(5.770419) = 290.624828

小做修改了一下,不用函数句柄,直接用符号计算,可以更精确点:
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 %%%%% 二阶微分大于零,是极小值点
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<0 %%%%% 二阶微分小于零,是极大值点
fmax = doubel(limit(f,x,xz));
fprintf('find a maxima point x = %f,and the maxima value is f(%f) = %f\n',temp,temp,fmax);
end
end

结果:
find a minimum point x = 5.770419,and the minimum value is f(5.770419) = 285.043134

结果验证,你可以自己画个图看看,在命令框输入以下命令即可:
>> syms x;
>> f = sqrt(5^2+(8-x)^2)*28.8+sqrt(15^2+(5+x)^2)*7.2;
>> ezplot(f,[-10,10])

热心网友 时间:2023-05-18 07:35

matlab?太猛了点吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
泰迪必备用品有哪些? 养泰迪狗新手需要准备什么东西 谁知道白色泰迪狗的生活用品需要哪些? 美国什么选举时间 离西双版纳最近的地州必去景点 技嘉945GCM-S2L ( 英特尔 945G )主板配什么显卡好 5年的台式电脑了想更新配置,反应速度有点慢。该如何提高,求大神指教... e2160超频设置 如何将多个excel表格合并成一个如何把多个工作簿合并成一个excel 上海社保最低比例是多少钱 此句活的烂字怎解释? 微信公众号在线报名系统被关闭怎么回事 怎么计算matlab图形的极值点(x最大值和y最大值) 空字部首怎样读 微信公众号怎么设置报名系统,让别人可以在公众号... 好死不如烂活什么意思啊? 微信公众号在线报名系统怎么做? 怎么求函数的极小值 matlab里 请问邮政二类卡可以绑定支付宝吗?可以存取吗?限... 空的拼音咋写 我活的很烂 邮政银行卡不开通网银绑定不成微信吗 空的拼音怎么打 用微信支付从邮政二类卡可以取得到邮政一类卡的钱吗? 得活烂是什么病? 朝、没、重、空的拼音 matlab怎么实现求分段函数的极值点 微信支付怎么支付不了,我的卡是邮政储蓄银行卡,... 民间说的活烂子怎么回事 如何查看matlab函数极值点坐标。画出图像后不知道... 那种文字处理软件可以计算输入的字数 如果用matlab将所给的数据用三次样条插值为一个曲... 空字部首怎么读? 什么空 如何填写? 有没有一款能够计算字数的打字工具? 如何用matlab求函数的极值点 如何用什么软件计算字数 好死与烂活有多大区别? 邮储银行二类户添加到手机银行 matlab中,求某个点附近的最值 感觉我自己活的真烂怎么办我努力了两年 我真的还是... 写小说用什么软件好,可以统计字数的。 用matlab求z=x^2-(y-1)^2的极值 活纱死布烂衣服什么意思 用Matlab编程找出曲线的极大值坐标 有没有可以计算字数的软件?能在手机下载的?就是... 你就像盛夏里的哪个烂番茄,活的很新鲜,烂的更彻底... matlab怎么在找出图中极值的纵横坐标 活着不交人死了烂成泥是什么意思? matlab 求函数的极值点和拐点