matlab ignoreanalyticconstraints,MATLAB函数随笔之计算篇
前言:这些都是我在学习MATLAB与数学建模时遇到的一些常用函数,就在这里写了下。当然MATLAB十分强大,函数众多,这些只是凤毛麟角,这篇博客我也会一直更新有新的函数就接着写上,希望对大家有所帮助。
前言:这些都是我在学习MATLAB与数学建模时遇到的一些常用函数,就在这里写了下。当然MATLAB十分强大,函数众多,这些只是凤毛麟角,这篇博客我也会一直更新有新的函数就接着写上,希望对大家有所帮助。有不足之处还望指出。
这里是MATLAB画图篇。
数值计算篇
1. 微分方程
解上式x(t)=?
x=dsolve("Dx=r*x*(1-x/m)","x(0)=x0","t")
x =
-m/(exp(log(1 - m/x0) - r*t) - 1)
上面化简一下就是下面这个
解这个微分方程
求出sym来不要慌,s.x就能给结果了,注意这里是s=,要是ans就是ans.x
本题来源B站大仙一品堂
无约束问题的MATLAB解法
2. 无约束极值问题的符号解
求多元函数f(x,y)=x3?y3+3?x2+3?y3?9?xf(x,y)=x^3-y^3+3*x^2+3*y^3-9*xf(x,y)=x3?y3+3?x2+3?y3?9?x的极值
具体为啥这样算,都是高数上的知识
clear
syms x y
% x=-100:100;
% y=-100:100;
f=x.^3-y.^3+3*x.^2+3*y.^2-9*x;
% plot3(x,y,z)
df = jacobian(f);%各求一阶偏导数
d2f = jacobian(df);%号求Hessian阵
[xx,yy] =solve(df) %求驻点
xx = double( xx) ;yy = double(yy);%名转化成双精度浮点型数据,下面判断特征值的正负须是数值型数据
for i =1: length( xx)
a=subs(d2f,{x,y},{xx(i),yy(i)});
b=eig(a);%名求矩阵的特征值
f =subs( f,{x,y},{xx(i),yy(i)});
f = double( f);
if all(b>0)
fprintf("(% f,%f)是极小值点,对应的极小值为 %f\n" ,xx(i),yy(i),f);
elseif all(b<0 )
fprintf("(% f,% f)是极大值点,对应的极大值为%f\n" ,xx(i),yy(i),f);
elseif any(b>0) && any(b<0)
fprintf("(% f,%f)不是极值点\n" ,xx(i),yy(i));
else
fprintf("无法判断(% f,% f)是否是极值点\n",xx(i),yy(i));
end
i=i+1;
end
3.无约束极值问题的数值解
fminunc 找到指定问题的最小值,minxf(x) ,其中f(x)是一个返回一个标量的函数,x是一个向量或者矩阵。
fminsearch 从x0开始,找到函数fun中的局部最小值x,x0可以是标量,向量,矩阵。
求sin(x)+3sin(x)+3sin(x)+3在4附近的极小值。
clear
f=@(x) sin(x)+3;
[x,y]=fminsearch(f,4)
clc, clear
f=@ (x) x(1)^3 -x(2)^3 +3 *x(1)^2 +3 *x(2)^2 -9 *x(1) ;
g=@ (x) - f(x);
[xy1,z1] = fminunc( f, rand(2,1))%求极小值点
[xy2 ,z2] = fminsearch(g,rand(2,1));%求极大值点
xy2,z2=-z2
xy1 =
1.0000
-0.0000
z1 =
-5.0000
xy2 =
-3.0000
2.0000
ans =
31.0000
可以看到,在(1,0)取得极小值 -5,在(-3,2)取得极大值 31。
4.求函数的零点和方程组的解
求f(x)=x3?x2+5?x?3f(x)=x^3-x^2+5*x-3f(x)=x3?x2+5?x?3的零点.
xishu=[1 -1 2 -3];
roots(xishu)
ans =
-0.1378 + 1.5273i
-0.1378 - 1.5273i
1.2757 + 0.0000i
求方程组的解
syms x y
[x,y]=solve(x^2+y-6,y^2+x-6)
x =
2
-3
21^(1/2)/2 + 1/2
1/2 - 21^(1/2)/2
y =
2
-3
1/2 - 21^(1/2)/2
21^(1/2)/2 + 1/2
函数化简
(1/x3+6/x2+12/x+8)(1/3)(1/x^3+6/x^2+12/x+8)^{(1/3)}(1/x3+6/x2+12/x+8)(1/3)
syms x
f=(1/x^3+6/x^2+12/x+8)^(1/3)
r1=simplify(f)%((2*x + 1)^3/x^3)^(1/3)
% "Steps",默认是1,设置值可以去任意整数,表示化简的轮次
%"IgnoreAnalyticConstraints",默认是false,如果为true,只考虑纯粹的化简,而不顾及“非完全等价”的可能
r2=simplify(f,"Steps",10,"IgnoreAnalyticConstraints",true)%1/x + 2
求极限
sin(t?k)/(t?k),(1?1/x)(k?x)sin(t*k)/(t*k),(1-1/x)^{(k*x)}sin(t?k)/(t?k),(1?1/x)(k?x)
syms t x k
g=sin(t*k)/(t*k);
f=(1-1/x)^(k*x);
symvar(g,1)%这个是看一下我们的自由变量是啥 是t
lig=limit(g,0)% t趋近于0时的值
lig1=subs(lig,k,1) % subs是把t替换成1
lif=limit(f,x,inf)
lif1=subs(lif,k,-1)
lif2=vpa(subs(lif,k,-1),48)%vpa是精度,精确到小数点后48位
求导
普通求导:sin(∣x∣)sin(|x|)sin(∣x∣)
abs()是求绝对值,
Y = sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是:
1,前提是 x 的对应元素大于 0。
0,前提是 x 的对应元素等于 0。
-1,前提是 x 的对应元素小于 0。
x./abs(x),前提是 x 为复数。
clear
syms x
x=[-4:0.1:4];
f=sin(abs(x));
d=diff(f)
y=cos(abs(x)).*sign(x);%这里复制了下d
plot(x,y)%这里plot(x,y),y必须重新定义,不能用前面算出来的d
d1 =
cos(abs(x))*sign(x)
隐函数求导
泰勒级数展开
syms x
r5=taylor(x*exp(x))%默认是6级
r8=taylor(x*exp(x),"Order",8)%这是8级
pretty(r8)%pretty展开多项式的易读格式
有限/无限级数之和.
syms n k
f=1/(k*(k+1))
d1=symsum(f,k,1,inf)
d2=symsum(f,k,1,n)
d1 =
1
d2 =
n/(n + 1)
积分
普通积分
int(x^2)
多重积分
∫12∫xx2∫x?yx2yx2+y2+z2dzdydx\int_{1}^{2}\int_{\sqrt{x}}^{x^2}\int_{\sqrt{x*y}}^{x^2y}x^2+y^2+z^2dzdydx∫12?∫x?x2?∫x?y?x2y?x2+y2+z2dzdydx
clear
syms x y z
f=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)
vpa(f)
符号计算篇
1. 隐函数化简求解
(1)、
上式化简为下式
syms t r i
t=solve(1== ((1-i)/i)*exp(-r*t),t)
t =
-log(-i/(i - 1))/r
化简下面函数
syms b d v1 v2 v3 v4
[v3,v4]=solve(b*v1+d*v2==b*v3+d*v4,b*v1^2+d*v2^2==b*v3^2+d*v4^2,v3,v4)
v3 =
(b*v1 - d*v1 + 2*d*v2)/(b + d)
v4 =
(2*b*v1 - b*v2 + d*v2)/(b + d)
用符号法求解
u?w2+z?w2=vu*w^2+z*w^2=vu?w2+z?w2=v
代码很简单,自己运行看结果吧,建议用实时脚本来运行
clear
syms u v w z
E=u*w^2+z*w^2-v
g(z)=u*w^2+z*w^2==v
symvar(E,1)%后面不带数字1的话是给出所有的参数符号,1是最前面那个,也就是我们要求的参数
symvar(g(z),1)
r1=solve(E)
r2=solve(g(z))
s1=solve(E,z)
s2=solve(g(z),z)
ans=simplify(subs(E,z,s1))%subs就是把s1换成z
ans1=simplify(g(s2))
微分方程
求通解和奇解
图示微分方y=xy′?(y′)2y=xy"-(y")^2y=xy′?(y′)2的通解和奇解。
(与原微分方程的每一个解都相切的曲线的方程叫奇解)
clear all
y=dsolve("(Dy)^2-x*Dy+y=0","x")%求解,得到一个通解,一个奇解
%%
hold on
hy1=ezplot(y(2),[-6,6,-4,8],1);%奇解的图像
set(hy1,"Color","r","LineWidth",2)
%%
Sv=symvar(y(1));%自动辨认基本符号变量(不定常数符号)
for k=-2:0.5:2%画通解,给基本符号变量赋不同的值
y2=subs(y(1),Sv(1),k);
ezplot(y2,[-6,6,-4,8],1)
end
hold off
box on
legend("奇解","通解","Location","Best")
ylabel("y")
title(["\fontsize{14}微分方程"," (y "")^2 – xy "" + y = 0 ","的解"])
求反函数
求y=f(x)=1?21+exy=f(x)=1-\frac{2}{1+e^x}y=f(x)=1?1+ex2?
clc,clear
%% 求原函数积分,并作图
syms x y real
f(x)=1-2/(1+exp(x));%原函数
fint(x)=int(f,x,0,x)%原函数求积分
xk=0:0.1:2;
plot(xk,f(xk),"g",xk,fint(xk))%原函数以及积分函数图像
title("原函数及其积分函数")
legend("f(x)","\int^x_0 f(x)dx","Location","best")
%%求反函数
g(y)=subs(finverse(f),x,y)%求反函数
gint(y)=int(g,y,0,y)%对反函数积分
gf=g(f(x))%验证
fg=f(g(y))
其他函数篇
3. unifrnd生成(连续)均匀分布的随机数
x=unifrnd(0,12,[1,10]);
y=1:10;
plot(y,x,"*")
x生成了[0,12]内的十个随机数
以上信息来源于网络,如有侵权,请联系站长删除。
matlab ignoreanalyticconstraints,MATLAB函数随笔之计算篇相关推荐
- MATLAB函数随笔之计算篇
前言:这些都是我在学习MATLAB与数学建模时遇到的一些常用函数,就在这里写了下.当然MATLAB十分强大,函数众多,这些只是凤毛麟角,这篇博客我也会一直更新有新的函数就接着写上,希望对大家有所帮助. ...
- [转载]在Matlab中Bessel函数怎么表示计算
在Matlab中Bessel函数怎么表示计算 百度知道:https://zhidao.baidu.com/question/559660704716601644.html MATLAB提供了计算贝塞尔 ...
- MATLAB中Bessel函数的表示计算
MATLAB提供了计算贝塞尔函数的函数,具体包括: besselj - 第一类贝塞尔函数,或简称贝塞尔函数: bessely - 第二类贝塞尔函数,又称诺伊曼函数(Neumann function): ...
- matlab besselk,【在MATLAB中Bessel函数怎么表示计算】作业帮
1. Matlab中,支持下列各种Bessel函数的计算: BESSELJ(NU,Z) Bessel function of the first kind BESSELY(NU,Z) B ...
- Matlab中cq是什么,Matlab中gradient函数(梯度计算原理)
Gradient(F)函数求的是数值上的梯度,假设F为矩阵. >> x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0] x = 6 9 ...
- cumsum在matlab中,matlab中cumsum函数和sum函数详解
调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...
- fir滤波器等纹波matlab,基于Matlab的FIR滤波器设计与实现
基于Matlab的FIR滤波器设计与实现 一.摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见"基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成&quo ...
- matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc
MATLAB图像处理工具箱函数(细化篇) 第3章 MATLAB数字图像处理工具箱 3.1 MATLAB图像预处理 3.1.1 图像处理的基本操作 1. 读入并显示一幅图像 clear %清除所有的工作 ...
- matlab中pwelch函数计算功率谱密度
出处:Matlab用pwelch函数计算功率谱 - 知乎 (zhihu.com) 1:函数形式 [pxx,f] = pwelch(x,window,noverlap,NFFT,fs) 该函数可以自适应 ...
- 信息论 | 计算离散信源的信息量和熵的MATLAB实现(函数封装调用)
<信息论基础> 实验报告 姓名 XX 班级 XXXXXX 学号 2020XXXXXXXX 实验项目 计算离散信源的熵 日期 2022.10.21 实验环境 联想电脑 MATLAB R201 ...
最新文章
- 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现
- 【Ethereum】以太坊ERC20 Token标准完整说明
- c#_限制TextBox输入类型仅可为“-” “.” 数字
- PyCairo 中的形状和填充
- 【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案
- 前端学习(1387):多人管理项目7登录 数据库连接
- ArcEngine 9.3.1与64位操作系统 80040154
- 使用Nsight查找CE3的渲染bug
- 放肆的使用UIBezierPath和CAShapeLayer画各种图形
- AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK
- Java 9 揭秘(15. 增强的弃用注解)
- AU更新 AUTOIT
- 世纪联华开了家新零售门店,网易严选也要入驻
- 你还记得它吗?Visual FoxPro,红极一时的狐狸头
- 单光感pid巡线_PID非常好的光感巡线思路
- 分享大三改进后的python写的【银行管理系统】,超详细 【内附源码】
- 建立统分结合、职责明确的疾控可持续发展信息化体系
- teamview 解除限制使用时间方法(判断长时间使用 会限制使用时间)
- BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用
- RF 电路设计中的常见问题及解决方案
热门文章
- 自我介绍计算机应用技术,计算机应用专业的新生自我介绍
- 【破解】PyCharm2018专业版激活(激活到2100年)
- 【数据分析】如何构建指标体系 设计一份优质报表
- html5课程总结500字,高中月考总结与反思500字(精选5篇)
- i7 8700k 安装linux,Intel i7 8700K核显UHD620安装黑苹果仿冒HD620方法
- appleid注册服务器错误,连接apple id 服务器时出错(Apple ID 验证连接失败,试试这招)...
- 管理科学与工程 国内核心期刊 国外a刊及SCI
- 问佛__如果浮躁了,静下来看看,慢慢体会下
- 大学计算机基础 - 第七章练习题
- Fortify 5.1漏洞整改方案