MATLAB设置x为0到10所有数,MATLAB教学_10数值微积分

本文学习视频地址:https://www.bilibili.com/video/av68228488?p=10

课堂PPT以及本人学习代码已上传。

本文学习内容:

多项式的微分和积分

数值的微分和积分

目录

多项式的表示方法

polyval()

polyder()

16分钟练习

conv()

polyint()

Numerical Differentiation

39分钟练习

45分钟练习

47分钟练习

多次积分

数值积分

Midpoint rule :

Trapezoid rule

Function Handles(@)

创建函数句柄

匿名函数

多项式的表示方法

例如: f(x)=x^3-2x-5;

也就是 x^3 的系数为1, x^2的系数为0, x 的系数为 -2, 常数为-5;

所以 p=[1 0 -2 -5];

polyval()

y = polyval(p,x) 计算多项式 p 在 x 的每个点处的值。参数 p 是长度为 n+1 的向量,其元素是 n 次多项式的系数(降幂排序):

p(x)=p1^xn+p2^(xn−1)+...+pn^x+pn+1.

虽然可以为不同目的使用 polyint、polyder 和 polyfit 等函数计算 p 中的多项式系数,但您也可以为系数指定任何向量。

要以矩阵方式计算多项式,请改用polyvalm。

[y,delta] = polyval(p,x,S) 使用 polyfit 生成的可选输出结构体 S 来生成误差估计值。delta 是使用 p(x) 预测 x 处的未来观测值时的标准误差估计值。

clear all; %6分钟练习

clc;

a=[9,-5,3,7]; %构建多项式的系数

x=-2:0.01:5;

f=polyval(a,x); %计算多项式 f在每个x 点的值

plot(x,f,'LineWidth',2,'Color','red'); %用图表示出来

xlabel('x'); ylabel('f(x)');

set(gca,'FontSize',14);

polyder()

多项式微分

283282825d3211adbb51db33d83b7184.png

clear all; %11分钟练习

clc;

p=[5 0 -2 0 1];

polyder(p) %f'(p)

polyval(polyder(p),7) % f'(7)

16分钟练习

24f9c2a6320968c45ff6fc1490be967b.png

做出来和老师的不一样。有的弹幕说是p=[5 -7 5 10];   这里想不通。

conv()

w = conv(u,v) 返回向量 u 和 v 的卷积。如果 u 和 v 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。

w = conv(u,v,shape) 返回如 shape 指定的卷积的分段。例如,conv(u,v,'same') 仅返回与 u 等大小的卷积的中心部分,而 conv(u,v,'valid') 仅返回计算的没有补零边缘的卷积部分。

clear all; %16分钟练习

clc;

p=[20 -7 5 10];

q=[4 12 -3];

x=-2:0.01:1;

f=conv(p,q); %如果是两个相乘的是行向量,则可以直接使用 conv()

a=polyval(f,x); %计算 f(x)的值

b=polyval(polyder(f),x); %计算 f'(x)的值

plot(x,a,'--b',x,b,'red','LineWidth',2);

xlabel('x');

legend('f(x)',"(f'(x))")

polyint()

多项式积分

q = polyint(p,k) 使用积分常量 k 返回 p 中系数所表示的多项式积分。

q = polyint(p) 假定积分常量 k = 0。

clear all; %22分钟练习

p=[5 0 -2 0 1];

x=-2:0.01:8

polyint(p,3) %求积分,常数指定为3

f=polyval(polyint(p,3),x); %计算积分的值

plot(x,f);

polyval(polyint(p,3),7) %求x=7时积分的值

Numerical Differentiation

diff()

差分和近似导数

Y = diff(X) 计算沿大小不等于 1 的第一个数组维度的 X 相邻元素之间的差分:

如果 X 是长度为 m 的向量,则 Y = diff(X) 返回长度为 m-1 的向量。Y 的元素是 X 相邻元素之间的差分。 Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

如果 X 是不为空的非向量 p×m 矩阵,则 Y = diff(X) 返回大小为 (p-1)×m 的矩阵,其元素是 X 的行之间的差分。 Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]

如果 X 是 0×0 的空矩阵,则 Y = diff(X) 返回 0×0 的空矩阵。

Y = diff(X,n) 通过递归应用 diff(X) 运算符 n 次来计算第 n 个差分。在实际操作中,这表示 diff(X,2) 与 diff(diff(X)) 相同。

Y = diff(X,n,dim) 是沿 dim 指定的维计算的第 n 个差分。dim 输入是一个正整数标量。

clear all; %30分钟练习

f=[1 2 5 2 1];

diff(f) %diff()返回的是 [2-1 5-2 2-5 1-2]

x=[1 2]; %因为要求斜率,所以根据坐标,将X和Y的坐标重新规划

y=[5 7];

slope=diff(y)./diff(x) %这里用点乘,以防x 和 y是多个数据的矩阵

clear all; %34分钟练习

% x=0:pi/50:2*pi;

% f=sin(x);

% g=polyder(f); %这里不能用polyder(),因为这个函数是多项式求导,并不是连续函数

% polyval(g,x)

x0=pi/2; h=0.1;

x=[x0 x0+h];

y=[sin(x0) sin(x0+h)];

m=diff(y)./diff(x)

39分钟练习

x0=pi/2; h=0.1; %39分钟练习

for i=1:6

x=[x0 x0+h];

y=[sin(x0) sin(x0+h)];

m(i)=diff(y)./diff(x);

h=h/10;

end

format long

m

45分钟练习

%%

h=0.5; x=0:h:2*pi; %45分钟练习

y=sin(x);

m=diff(y)./diff(x);

plot(x,y);

x(length(x))=[]; %弹幕大神,把x的最后一项设置为空。以此和plot()匹配

hold on

plot(x,m)

%%

h=0.5; x=0:h:2*pi; %另一个方法

y=sin(x);

m=diff(y)./diff(x);

plot(x,y);

hold on

plot(x(:,1:end-1),m) %这里用到end的一个用法:索引

%x(:,1:end-1), 冒号是表示所有行,因为在第一个属性里,第二个1:end-1 表示 从第一列到倒数第二列。

使用 end 访问矩阵 A 的最后一行。

A = magic(3)

A = 3×3

8 1 6

3 5 7

4 9 2

B = A(end,1:end) %这里第一个end 是最后一行, 第二个 1:end 是指列从第1列到最后一列

B = 1×3

4 9 2

具体可以查看:https://ww2.mathworks.cn/help/matlab/matlab_oop/object-end-indexing.html

不过我没看懂。

clear all; %46分钟练习

g=colormap(lines); %首先是将内置的colormap(lines)赋值给了g, lines是里面内置的一种线的颜色矩阵

hold on;

for i=1:4

x=0:power(10,-i):pi; % power()是按元素尔幂函数,这里是10^(-i)

y=sin(x); m=diff(y)./diff(x);

plot(x(:,1:end-1),m,'Color',g(i,:)); %一共有4条线,依次取了lines里面第1行到第4行的颜色

end

hold off;

set(gca,'xlim',[0 pi/2]);

set(gca,'ylim',[0 1.2]);

set(gca,'FontSize',18);

set(gca,'XTick',0:pi/4:pi/2);

set(gca,'XTickLabel',{'0','\pi/4','\pi/2'});

h=legend('h=0.1','h=0.01','h=0.001','h=0.0001');

set(h,'FontName','Times New Roman');

box on;

C = power(A,B) 是执行 A.^B 的替代方法,但很少使用。它可以启用类的运算符重载。

47分钟练习

这里exp(x)  ; 就是e^x;

clc;

clear all; %47分钟练习

g=colormap(flag);

hold on;

for i=1:3

x=0:power(10,-i):2*pi;

y=exp(-x).*sin(x.^2/2);

m=diff(y)./diff(x);

plot(x(:,1:end-1),m,'Color',g(i,:));

end

plot(x,y,'Color',g(4,:));

hold off;

xlim([0 2*pi]);

set(gca,'FontSize',20);

set(gca,'XTick',0:pi/2:2*pi);

set(gca,'XTickLabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});

legend('h=0.1','h=0.01','h=0.01','h=0.001','y(x)');

xlabel('x');

ylabel('y');

box on;

多次积分

思路是先算出一次的积分,再用一次的积分再求积分。

clear all; clc; %49分钟练习

x=-2:0.005:2;

y=x.^3;

m=diff(y)./diff(x);

m2=diff(m)./diff(x(:,1:end-1));

plot(x,y,x(1:end-1),m,x(:,1:end-2),m2);

数值积分

区间积分也就是求面积。有两种方法:

ec7be59f1964dc56f4b6d52a23e3f4dd.png

Midpoint rule :

就是取中间点。在这个方法里面 h,也就是宽度是一定的。只有高度不一样。高度也就是f(x)的值 。

下面的图,老师讲了怎么获取这个中间点的办法。第1个 x 矩阵是从x1开始,第二个矩阵是从x2开始,这两个相加除2就是中间点。

70b1046311c52e43b9b11d03a4addbb6.png

clear all; clc; %59分钟练习

h=0.05; x=0:h:2;

midpoint=(x(1:end-1)+x(2:end))./2; %求积分也就是求面积,算出每个中间点

y=4*midpoint.^3; % 用中间点带入到积分中,得出y值;

s=sum(h*y) %求出用宽度 h和高度 y的乘积并相加

%如果要精度更高,可以把 h 取小

Trapezoid rule

是用梯形的办法求出来。

Q = trapz(Y) 通过梯形法计算 Y 的近似积分(采用单位间距)。Y 的大小确定求积分所沿用的维度:

如果 Y 为向量,则 trapz(Y) 是 Y 的近似积分。

如果 Y 为矩阵,则 trapz(Y) 对每列求积分并返回积分值的行向量。

如果 Y 为多维数组,则 trapz(Y) 对其大小不等于 1 的第一个维度求积分。该维度的大小变为 1,而其他维度的大小保持不变。

6e44a9f3393f45786582d188be325a57.png

clear all; clc; %62分钟练习

h=0.05; x=0:h:2;

y=4*x.^3;

s=h*trapz(y) %trapz()来计算梯形数值积分

%%

clear all; clc; %64分钟练习

h=0.05; x=0:h:2;

y=4*x.^3;

trapezoid=(y(1:end-1)+y(2:end))/2;

s=h*sum(trapezoid)

辛普森的方法会准确一点,公式不会。大家自行百度。

三种方法的比较:

2fcbebde4330ee7fd796fccdde4bca0b.png

e50ca807d3e1aef67160c5a10d70e876.png

Function Handles(@)

句柄就像是一个指向一个函数的指针,在使用的时候利用这个指针指向其它函数,就可以调用。

例如: f=sin(x); 如果我要在函数g() 里用 f时,那么就要用指针去指向sin(x). 如下: g(@f,...)

创建函数句柄

通过在函数名称前添加一个 @ 符号来为函数创建句柄。例如,如果您有一个名为 myfunction 的函数,请按如下所示创建一个名为 f 的句柄:

f = @myfunction;

使用句柄调用函数的方式与直接调用函数一样。例如,假设您有一个名为 computeSquare 的函数,该函数定义为:

function y = computeSquare(x)

y = x.^2;

end

创建句柄并调用该函数以计算 4 的平方。

f = @computeSquare; %%相当于调用

a = 4;

b = f(a)

b =

16

匿名函数

您可以创建指向匿名函数的句柄。匿名函数是基于单行表达式的 MATLAB 函数,不需要程序文件。构造指向匿名函数的句柄,方法是定义 anonymous_function 函数主体,以及指向匿名函数 arglist 的以逗号分隔的输入参数列表。语法为:

h = @(arglist) anonymous_function

也就是在 (arglist) 里写未知写, 后面紧跟着写函数

例如,创建一个指向用于计算平方数的匿名函数的句柄 sqr,并使用其句柄调用该匿名函数。

sqr = @(n) n.^2;

x = sqr(3)

x =

9

clear all; clc; %75分钟练习

y=@(x) 1./(x.^3-2*x-5); %%有一个输入数

integral(y,0,2)

f=@(x,y) y.*sin(x)+x.*cos(y); %%有两个输入数

integral2(f,pi,2*pi,0,pi)

f=@(x,y,z) y.*sin(x)+z.*cos(y); %%有三个输入数

integral3(f,0,pi,0,1,-1,1)

c5edad6c7abe955608cf67be98cea380.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php header 404 nginx,ThinkPHP在nginx下怎么设置?路由统统404,疯了~

本地用MAMP跑的代码,运行没问题。但是部署到CENTOS 6.8 NGINX服务器上的时候,路由地址都404了![可以访问] http://something.com/API/public/index.php[404] http://something.com/API/public/index.php/consult_add折腾一晚上了。。简直了&a…

php strchr 截断,PHP strchr() 函数

w3school 教程PHP String 函数查找 "world" 在 "Hello world!" 中的第一次超并返回此字符串的其余个别:echo strchr("Hello world!","world");?>运行实例strchr() 函数搜他串在另一字符串中的第一次常该函数是 strstr(…

matlab aic sic,sic是什么意思_sic的翻译_音标_读音_用法_例句_爱词霸在线词典

全部In the mud -- En ange e il mondo ! [ sic ] ( 6 )污泥里 —— Efangoeilmondo! ( 六 )汉英文学 - 围城Fixed - seal & rotational - seal are made of various msterials, SIC, Carbon, Ceramic and can withstand various chemicals.固定环 及 转动环由各种不同材质…

win7卸载oracle12c,Windows7上完全卸载Oracle 12c操作步骤

Windows7上完全卸载Oracle 12c操作步骤1.关闭Oracle所有的服务,按【winR】运行【services.msc】找到所有Oracle开头的服务(OracleVssWriterORCLOracleServiceORCLOracleOraDB12Home1TNSListenerOracleOraDB12Home1MTSRecoveryServiceOracleJobSchedulerORCL),点击停止。2.使用O…

linux怎样扩容目录,Linux系统下对目录扩容的方法介绍

1、现象:日志服务器当初考虑不周,分区划分不太合理:2、目标:将/home磁盘空间缩减 并将新的磁盘分区扩充到/根目录卸载/home分区并压缩分区卸载/home时 提示目标忙,fuser -m /home查看谁用/home时提示没有fuser命令[ro…

linux多线程九宫格,项目实战:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)...

需求做嵌入式设备,需求九宫格图片资源浏览器:1.设置根目录;2.可拖动;3.可设置列数与行数;4.点击文件夹可以进入文件夹;5.点击图片可以浏览图片;6.支持触摸屏上下拽拖浏览;7.支持长安…

window连接树莓派linux桌面,远程连接Raspberry Pi(树莓派)图形用户界面(X Window)

背景:有的时候,我们希望能远程连接一台linux的图形界面用来管理机器,这里需要用到tightvncserver和xtightvncviewer两个工具我的树莓派的ip是10.141.247.134 另一台机器为作client去链接树莓派的ip为10.141.247.121. 先在树莓派的机器上安装tightvncs…

linux小红帽系统能用微信,小红帽腾讯QQ微信登录版-小红帽腾讯版v1.0.3 安卓版-腾牛安卓网...

小红帽腾讯版是一款专为广大喜爱玩童话类手游的玩家打造的欧美风游戏,这款游戏有着最为精致的游戏画面,黑色风格的童话故事,带领玩家领略不一样的童年世界,给您带来最佳的游戏体验!小红帽腾讯版简介《小红帽》是一款改…

计算机二级c语言2021年重点内容,2021年5月计算机二级C语言试题(总)

一个考生的快乐,不是因为他备考的时间多,而是因为他的选择对。选择考无忧题库,做二级C语言试题,助你备考轻松!二级C语言试题【1】1.若有以下数组说明,则i10;a[a[i]]元素数值是(C)。int a[12]{1,4,7,10,2,5,…

android 图片合成pdf文件,教你怎么把多张图片合成一个pdf文件

当你遇到需要把多张图片合并成一个pdf文件时,你需要怎么做?可能有些朋友会说下载一个pdf格式转换工具,其实不必这么麻烦,你只要把文件上传到在线迅捷pdf转换器,就可以一站式帮你搞定pdf文件的格式转换以及一些常用的功能操作(如p…

华为系统鸿蒙优势,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上,华为消费业务CEO 余承东,正式发布鸿蒙OS2.0,并宣布华为鸿蒙OS将全面启用全场景生态,并将于2020年12月发布手机版。余承东还表示,明年,华为的智能手机将全面升级,以支持鸿蒙操…

网页自动关机代码HTML,win10系统打开邮件显示网页html源代码如何解决

有不少win10系统用户在打开邮件的时候,发现内容全是显示网页的html源代码,无法看到内容,遇到这样的问题该怎么办呢,通常是自带的"邮件和日历"应用暂时不支持查看HTML格式的邮件,下面给大家分享一下具体的解决…

retrofit 2.0 android 教程,初识Retrofit2.0

Retrofit无疑是当下最流行的Android网络请求框架了,是Square提供的开源产品。官方网站是这样介绍Retrofit的—-A type-safe HTTP client for Android and Java,为Android平台的应用提供一个类型安全的HTTP客户端。Retrofit 是一套注解形式的网络请求封装…

小学生学计算机编程的必要,小学生学编程,真的那么重要吗

原标题:小学生学编程,真的那么重要吗编程简单的说就是告诉计算机要做什么。人类需要将解决问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。计算机是迄…

家用计算机机箱怎么选,DIY装机怎么选择电脑机箱 新手必读的电脑主机箱选购指南...

在这个讲究颜值的时代,对于一些主要外观的外观党来说,内外皆修的机箱也是算重要的。DIY装机怎么选择电脑机箱?下面装机之家小编就来谈下新手必读的电脑主机箱选购指南,对于装机选择机箱困难症的朋友不妨来看看。一、首先要明白自己…

计算机启动应用程序的方法,excel的程序_Excel2010中启动应用程序的三种方法

使用Excel时,需要先启动应用程序,怎么去进行操作启动它?今天,学习啦小编就教大家在Excel2010中启动应用程序的三种方法。Excel2010中启动应用程序的三种步骤如下:1.开始菜单在桌面上,单击“开始”,“所有程…

西安工业学院计算机系王翊,西安文理学院艺术学院

“爱的长歌”声乐教学与实践汇报音乐会——王翊师生音乐会圆满结束6月26日我院第八场“爱的长歌”声乐教学与实践汇报音乐会—王翊师生音乐会圆满结束。音乐会受到老师和同学的一致赞誉。整场音乐会高潮迭起,掌声不断。音乐会的学生由16级音乐表演专业的声乐方向的同…

计算机如何制作U盘启动盘,电脑如何制作U盘启动盘

为什么要制作U盘启动盘?U盘启动盘是什么?今天小编和大家普及一下,什么是U盘启动盘。就是一个简简单单的U盘,经过装机工具软件就变成了一个装有PE镜像文件的U盘,通过这个启动盘可以进入PE系统对电脑进行重装系统。话不多…

c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...

平台对接V5验证前后端对接流程如下图所示:前后端调用时序图对接V5验证分为业务网站后台api对接以及业务前端代码引入两部分。业务网站后台获取验证Token及验证服务器(getToken)用于网站后台定时通过V5控制台刷新获取验证所需要的Token及验证服务器地址。Token有效期…

战队服务器人员位置,和平精英:职业战队如何分配成员位置?5大定位划出5种职位...

#百度APP&百家号杯和平精英#随着时间的推进,距离百家号杯的决赛越来越近了;一百只精英队伍你争我抢都想要争取冠军的宝座。在最新的一场循环赛当中SC战队以70分的总积分占领榜首,Dae战队以69分的总积分紧随其后排名第二。虽说SC拿到了循环…