matlab 一元线性微分,怎样用matlab求一元线性函数极值
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])
matlab 一元线性微分,怎样用matlab求一元线性函数极值相关推荐
- matlab一元线性回归分析_建模开讲:一元线性回归分析及SPSS软件实现
主讲内容:一元线性回归分析及SPSS软件实现 主讲时间:2020年3月28日(周六)上午9:00 直播平台:腾讯课堂 主讲人:么彩莲 链接地址:点击下面的"阅读原文"可以获得直播地 ...
- 二阶边值问题的数值解matlab,二阶线性微分方程边值问题的MATLAB求解
2012 年 3 月第 26 卷 第 1 期 阴 山 学 刊 YINSHAN ACADEMIC JOURNAL Mar. 2012 Vo1. 26 No. 1 二阶线性微分方程边值问题的 MATLAB ...
- matlab常系数线性矩阵微分方程组,基于Matlab常系数线性微分方程组的求解
·基础数学· 基于 Matlab 常系数线性微分方程组的求解* 严水仙 (赣南师范大学 数学与计算机科学学院,江西 赣州 341000) 摘 要: 在常微分方程课程教学中,常系数线性微分方程组可以通过 ...
- matlab解二阶微分方程组ode,MATLAB解含参数方程、矩阵方程、二阶微分方程组
1.如下公式: 其中x.y.m.n为参数,a.b为未知数,利用MATLAB求解方程: syms x y m n a b; [a,b]=solve('x=m*cos(a)+n*cos(a+b)','y= ...
- 迭代函数系统matlab实现,线性随机IFS迭代Matlab示例程序.doc
线性随机IFS迭代Matlab示例程序 线性随机IFS迭代 Matlab示例程序 Tree Leaf Mountain %% 线性随机IFS迭代[iterated function systems迭代 ...
- 一元二次方程虚根求法java_java怎么求一元二次方程虚根,虚根i怎么定义啊。
当判别式<0,这个时候就产生虚根了,写起来比较麻烦,算法是这样的举个简单例子说明吧: 求一元二次方程:x^2+x+1=0的虚根 解:△=1^2-4×1×1=-3 由求根公式x=[-b±√(-△) ...
- matlab怎么建立一元线性回归方程,请问用MATLAB做一元非线性回归拟合,怎么做显著性检验呢?...
例子; x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]'; X=[ones(16,1) x]; 增加一个常数项 ...
- 一元三次方程重根判别式_如何求一元三次方程
我们知道,一元二次方程 的根可以通过求根公式 计算 那一元三次方程的根如何求?进行百度的话,我们可以发现一元三次方程可以采用卡尔丹公式和盛金求根公式来计算.下面用最基础的代数方法来理解卡尔丹公式怎么来 ...
- java计算一元二次方程的根_java基础 --- 求一元二次方程的根(分情况讨论)-Go语言中文社区...
package com.test;//创建一个test包 import java.util.Scanner;//导入java.util包中的Scanner类(使用此类可以方便的完成输入流的输入操作) ...
最新文章
- 【洛谷p1313】计算系数
- Collections 索引
- 如何从代码层面优化系统性能
- 数据分析软件-weka
- 最小安装虚拟机命令行安装图形化
- postgresql 排序索引
- 程序人生之回顾大学前两年----第二篇
- vs运行时 文本可视化工具 无法点开_webpack 优化:2 款工具帮你找到构建速度“变慢”的原因...
- 主程序分析法MATLAB编程,专题五 概率统计问题的Matlab求解
- 设置Windows 8.1屏幕自己主动旋转代码, Auto-rotate function code
- C语言 *** stack smashing detected *** 问题的解决
- let的解构赋值_解构赋值还有这么多玩法?
- zzzkkk666用户名密码
- weblogic12C安装
- led闪烁和流水灯代码
- android中实现GPS定位功能,Android GPS定位步骤
- SM2258XT+B17A测试(焊接+开卡+测速+跑圈)
- 用java代码怎样做pos结算_Java Tile.Pos方法代码示例
- 百度把黑科技发布会开到央视,主持人连连感叹:文科生都看懂了
- php开发数独,数独解题小程序实现代码