《MATLAB SYNTAX》第5章 数值计算

(5.1) 一重积分

clc;clear;
x = linspace(0,2*pi,100);
y = sin(x);
I = trapz(x,y) %9.1073e-17,梯形积分法
clc;clear;
f = @(x) sin(x).*exp(x);
I_Simpson = quad(f,0,2*pi); %辛普森(Simpson)法
I_Guass_Lobatto = quadl(f,0,2*pi); %高斯-洛巴托(Gauss-Lobatto)法
I_Guass_Cronrod = quadgk(f,0,2*pi); %高斯-克朗罗德(Gauss-Cronrod)法
I_Integral = integral(f,0,2*pi); %全局自适应积分法

(5.2) 多重积分

在这里插入图片描述

I = integral2(f,a,b,c,d);
I = quad2d(f,a,b,c,d);
I = dblquad(f,a,b,c,d);

在这里插入图片描述

I = integral3(f,a,b,c,d,e,f);
I = triplequad(f,a,b,c,d,e,f);

(5.3) 函数零点

clc;clear;
f = @(x) cos(x); 
zero_point1 = fsolve(f,1) %求f在3附近的零点
zero_point2 = fsolve(f,[1,2]) %求f在区间[1 2]内的零点,区间必须符合零点存在定理
clc;clear;
f = @(x) [ sin(x(1)) + x(2) + x(3).^2 .*exp(x(1)),x(1) + x(2) + x(3),x(1) .*x(2) .* x(3) ];
x = fsolve(f,[1,1,1]) %求方程组在(1,1,1)附近的解

(5.4) 函数极值

x = fminsearch(f,x0); %在点x0附近寻找f的极小值点x
x = fminbnd(f,x1,x2); %在区间[x1,x2]内寻找f的极小值点x
[x,fmin] = fminsearch(f,x0); %在点x0附近寻找f的极小值点x和极小值fmin
[x,fmin] = fminbnd(f,x1,x2); %在区间[x1,x2]内寻找f的极小值点x和极小值fmin

(5.5) 一维插值

clc;clear;
x = 0:0.2:2;
y = (x.^2 - 3*x + 5).*exp(-3*x).*sin(x);
xi = 0:0.003:2;
yi_linear = interp1(x,y,xi); %线性插值
yi_nearest = interp1(x,y,xi,'nearest'); %临近点插值
yi_spline = interp1(x,y,xi,'spline'); %三次样条插值
yi_pchip = interp1(x,y,xi,'pchip'); %分段三次Hermite插值
yi_v5cubic = interp1(x,y,xi,'v5cubic'); %MATLAB5中的三次多项式插值
figure;
subplot(231);
plot(x,y,'rp');
title('数据点');
subplot(232);
plot(x,y,'rp',xi,yi_linear,'g-');
title('线性插值');
subplot(233);
plot(x,y,'rp',xi,yi_nearest,'g-');
title('临近点插值');
subplot(234);
plot(x,y,'rp',xi,yi_spline,'g-');
title('三次样条插值');
subplot(235);
plot(x,y,'rp',xi,yi_pchip,'g-');
title('分段三次Hermite插值');
subplot(236);
plot(x,y,'rp',xi,yi_v5cubic,'g-');
title('MATLAB5中的三次多项式插值');

在这里插入图片描述

(5.6) 多维插值

clc;clear;
x = linspace(-3,3,10);
y = linspace(-3,3,10);
[X,Y] = meshgrid(x,y);
Z = peaks(X,Y);
xi = linspace(-3,3,20);
yi = linspace(-3,3,20);
[Xi,Yi] = meshgrid(xi,yi);
Zi_linear = interp2(X,Y,Z,Xi,Yi); %线性插值
Zi_nearest = interp2(X,Y,Z,Xi,Yi,'nearest'); %临近点插值
Zi_spline = interp2(X,Y,Z,Xi,Yi,'spline'); %三次样条插值
Zi_cubic = interp2(X,Y,Z,Xi,Yi,'cubic'); %三次多项式插值
figure;
hold on;
colormap(jet);
subplot(3,2,[1 2]);
surf(X,Y,Z);
title('原始图');
subplot(323);
surf(Xi,Yi,Zi_linear);
title('线性插值');
subplot(324);
surf(Xi,Yi,Zi_nearest);
title('临近点插值');
subplot(325);
surf(Xi,Yi,Zi_spline);
title('三次样条插值');
subplot(326);
surf(Xi,Yi,Zi_cubic);
title('三次多项式插值');

在这里插入图片描述


《 M A T L A B   S Y N T A X 》 系 列 博 客 创 作 参 考 资 料 来 源 《MATLAB\ SYNTAX》系列博客创作参考资料来源 MATLAB SYNTAX

  1. 《自动控制原理实验教程》.巨林仓.西安交通大学出版社.
  2. 《MATLAB工程与科学绘图》.周博.薛世峰.清华大学出版社.
  3. 《MATLAB R2018a完全自学一本通》.刘浩.韩晶.电子工业出版社.
  4. 《科学计算与MATLAB语言》.刘卫国.蔡旭晖.吕格莉.何小贤.中国大学MOOC.
  5. 《MATLAB软件与基础数学实验》.李换琴.朱旭.王勇茂.籍万新.西安交通大学出版社.
  6. 《Matlab教程 - 图像处理》@正月点灯笼.https://www.bilibili.com.
  7. 《MATLAB从入门到秃头》@古德谓尔.https://www.bilibili.com.

博 客 创 作 : A i d e n   L e e 博客创作:Aiden\ Lee Aiden Lee
特别声明:文章仅供学习参考,转载请注明出处,严禁盗用!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值