实验5 matlab自定义函数与导数应用

合集下载

Matlab-实验导数中的应用

Matlab-实验导数中的应用
《高等数学》实验
2014-3-24
练习、画出分段函数的图形。
x2 , x [2, 0] f ( x ) 2 log 2 ( x 1), x (0,1] x x (1, 2] 2 ,
2014-3-24
《高等数学》实验
第二节 Matlab 计算导数
实验二 求函数的导数
lim x ln x
x 0
2014-3-24
《高等数学》实验
1. 求函数 y 2 x 3x
3
2
的极值;
syms x y; dy=diff(2*x^3-3*x^2)
dy =
6*x^2-6*x >> [x]=solve(dy) x2014-3-24 = 0 驻点
《高等数学》实验
>> diff(dy) ans = 12*x-6
>> f1=inline(ans);
>> f1(x) ans =
2014-3-24
-6
《高等数学》实验
>> x=0;
>> 2*x^3-3*x^2 ans = 0
>> x=1;
>> 2*x^3-3*x^2
2014-3-24
ans =
《高等数学》实验
练习:
1. y x , 求y, y
n
2、求函数 f ( x ) ( x 1)( x 1) 的极值;
【目的】
1. 熟悉基本求导公式,掌握初等函数的
求导方法;
2. 会求函数在给定点处的导数值。
【要求】 熟悉,Matlab中的求导命令diff
2014-3-24
《高等数学》实验

高等数学:MATLAB实验

高等数学:MATLAB实验
以上两种格式中的x、y都可以是表达式.plot是绘制二维 曲线的基本函数,但在使用 此函数之前,需先定义曲线上每一 点的x及y的坐标.
MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型

matlab创建函数及调用函数

matlab创建函数及调用函数

matlab创建函数及调用函数MATLAB是一种十分强大的计算软件,一直以来都是科学与工程领域中的常用工具。

它可以大大简化数值计算和深度探索数据的过程。

在MATLAB的编程过程中,我们需要频繁使用函数,那么怎么创建、调用函数呢?1、创建函数在MATLAB中,我们可以使用命令行创建函数,也可以使用编辑器创建函数。

这里我们以命令行方式来介绍。

首先,我们需要在命令行中输入“edit filename.m”,其中filename是自己取的函数名字,.m是MATLAB的函数文件扩展名。

接着会出现一个新的编辑器窗口,在这个窗口中输入函数的具体内容。

例如,我们想要创建一个函数用于计算两个数的和,可以这样写:function [res] = add(num1, num2)res = num1 + num2;end其中,function后面跟着函数名;[res]表示函数的输出参数,如果有多个输出,需要使用逗号隔开;add(num1, num2)中add为函数名,num1和num2是输入参数;最后,下面的语句计算函数结果,结果存在变量res中。

2、调用函数在MATLAB中,调用已经创建好的函数其实很简单,只需要在命令行中输入函数名加上相应的参数即可。

例如,我们调用上述函数来计算1+2,可以这样写:add(1,2)输出结果为3。

如果你之前正确定义了函数,那么调用函数就是这样简单,虽然看上去这样简单,但是我们必须要注意的是函数的正确定义。

总体而言,MATLAB创建和调用函数是编程中必不可少的操作,通过对函数的合理定义和使用,可以大大提高编程效率,并且保证代码的逻辑性和规范性。

希望以上几点能对大家在MATLAB学习的道路上有所帮助,并且感谢阅读!。

实验5__matlab自定义函数及导数应用

实验5__matlab自定义函数及导数应用

在区间 ( ,1) 与 (1, ) f ( x ) ,在区间 (1,3) f ( x ) , fmax (1) 7 fmin ( 3) 3
可建立一个名为 dandiao.m 文件,用来求函数 的单调区间。
disp('输入函数(自变量为x)'); syms x; f=input('f(x)='); df=diff(f); s=solve(df); s=eval(s) a=[]; for i=1:length(s); a(i)=s(i); end ezplot(f,[min(a)-1,max(a)+1])
grid21816141210806040215105发现在16和06附近各有一个零点我们分两个小区间分别求解fzerofun212fzerofun1201ans15956ans06180fzerofun16fzerofun06ans15956ans27656xfhfsolvefunx0返回一元或多元函数fun在x0附近的一个零点
解: 求可导函数的单调区间与极值,就是求导 函数的正负区间与正负区间的分界点。 先求导函数的零点,再画出函数图像,根据 图像可直观地看出函数的单调区间与极值。 syms x; f=x^3-6*x^2+9*x+3;df=diff(f,x);s=solve(df)
s = [ 1] [ 3]
ezplot(f,[0,4])
建立正态分布的密度函 数
( x )2 2 2
1 f ( x , , ) e 2 function y=zhengtai(x,a,b)
y=1/sqrt(2*pi)*a*exp(-(x-b)^2/2/a^2)
存为 zhengtai.m,调用时可输入命令: y=zhengtai(1,1,0) ans=0.2420

Matlab 自定义函数 数学软件与数学实验 教学课件

Matlab 自定义函数 数学软件与数学实验 教学课件
function y = mylfg(x) y=x^(1/3);
函数名与文件名必须一致!
2020/10/2
函数必须单独写一个文件! 不能与命令文件写在同一个文件中!
自定义函数方式(三)
这种函数定义方式是将 f 作为一个内部函数调用。其特 点是:调用方式最接近于我们平时对函数的定义,使程序 更具可读性。同时由于它是基于 Matlab 的数值计算内核 的,所以它的运算速度较快,程序更有效率。
2020/10/2
自定义函数的五种方式
Matlab 自定义函数的五种方式
命令文件/函数文件+ 函数文件 - 多个 M 文件 函数文件 + 子函数 - 一个 M 文件 inline - 无需 M 文件 syms + subs 方式 - 无需 M 文件 字符串 + subs 方式 - 无需 M 文件
替代时,单引号可以省略。但如果在 syms 后又被重新 定义为其它类型,则必须加单引号,否则不可替换。
2020/10/2
自定义函数方式(四)
这种函数定义方法的一个特点是可以用符号进行替换
该方法的缺点也是明显的:由于使用符号运算内 核,运算速度会大大降低。
2020/10/2
自定义函数方式(五)
这种定义方式的缺点: 定义一个内联函数用去的内存空间比相同条件下其他 的方法要大得多。 该方法只能对数值进行代入,不支持符号代入,并且 对于定义后的函数不能进行求导等符号运算。
2020/10/2
自定义函数方式(三)
2020/10/2
自定义函数方式(三)
%函数文件:function []=funtry3() lfg=inline('x.^(1/3)');
2020/10/2

MATLAB计算方法和技巧 导数的计算

MATLAB计算方法和技巧 导数的计算

MATLAB求导数的方法1.数值导数的计算[问题]求正弦函数的一阶导数和二阶导数y = sin x[数学模型]函数的一阶导数为y' = cos x函数的二阶导数为y'' = -sin x[算法]求差分函数为diff,对于数值向量,其功能是求后一元素与前一元素之差,如果数值间隔取得足够小,就能表示导数的近似值。

对于符号函数,可用同样的函数diff计算符号导数。

[程序]zyq3_1diff.m如下。

%正弦函数的导数clear %清除变量a=0:5:360; %度数向量x=a*pi/180; %弧度向量dx=x(2); %间隔(第1个值为零)y=sin(x); %正弦曲线dy=diff(y)/dx; %用差分求导数的近似值dy=[dy(1),(dy(1:end-1)+dy(2:end))/2,dy(end)];%求平均值figure %创建图形窗口%plot(x,cos(x),x(1:end-1),dy,'.') %画导数曲线(数值导数偏左)%plot(x,cos(x),x(2:end),dy,'.') %画导数曲线(数值导数偏右)plot(x,cos(x),x,dy,'.') %画导数曲线(数值导数适中)s=sym('sin(x)'); %定义符号函数sdy=diff(s); %符号导数ssdy=subs(sdy,'x',x); %替换数值hold on%保持图像plot(x,ssdy,'ro') %画导数曲线legend('公式解','数值解','符号解',4) %加图例title('正弦函数的一阶导数') %标题d2y=diff(dy)/dx; %用差分求导数的近似值d2y=[d2y(1),(d2y(1:end-1)+d2y(2:end))/2,d2y(end)];%求平均值figure %创建图形窗口plot(x,-sin(x),x,d2y,'.') %画导数曲线(数值导数适中)sd2y=diff(s,2); %符号二阶导数ssd2y=subs(sd2y,'x',x); %替换数值hold on%保持图像plot(x,ssd2y,'ro') %画导数曲线legend('公式解','数值解','符号解',4) %加图例title('正弦函数的二阶导数') %标题[图示]2.函数极值的计算[问题]求如下函数的极值y = x3– 3x2 + x(1) [数学模型]求导数y' = 3x2– 6x + 1 (2) 令y' = 0,解得1(3x=±=1.8165,0.1835 (3)3[算法]将自变量设计为向量,函数设计为内线函数,用max函数和min函数求极大值和极小值。

Matlab函数定义和调用

Matlab函数定义和调用
数学实验
Matlab 自定义函数
2021/7/1
1
自定义函数的五种方式
Matlab 自定义函数的五种方式
命令文件/函数文件+ 函数文件 :多个 M 文件 函数文件 + 子函数 : 一个 M 文件 inline : 无需 M 文件 符号表达式 + subs 方式 : 无需 M 文件 字符串 + subs 方式 : 无需 M 文件
这种函数定义方式是将 f 作为一个内部函数调用。其特 点是:调用方式最接近于我们平时对函数的定义,使程序 更具可读性。同时由于它是基于 Matlab 的数值计算内核 的,所以它的运算速度较快,程序更有效率。
这种定义方式的缺点: 定义一个内联函数用去的内存空间比相同条件下其他 的方法要大得多。 该方法只能对数值进行代入,不支持符号代入,并且 对于定义后的函数不能进行求导等符号运算。
function y = mylfg(x) y=x^(1/3);
函数名与文件名必须一致!
函数必须单独写一个文件!
不能与命令文件写在同一个文件中!
2021/7/1
3
自定义函数方式(二)
方式二:函数文件 + 子函数
%函数文件:funtry2.m function []=funtry2() for t=1:10
y=lfg2(t); fprintf('%4d^(1/3) = %6.4f\n',t,y); end
function y=lfg2(x) %%子函数 y=x^(1/3);
函数文件中可以定义一个或多个子函数,此时我们称该函
数为主函数,子函数只能被主函数或同一个函数文件中的
其它子函数调用!
2021/7/1
替代时,单引号可以省略。但如果在 syms 后又被重新 定义为其它类型,则必须加单引号,否则不可替换。

实验五+MATLAB数值计算(含实验报告)

实验五+MATLAB数值计算(含实验报告)

实验五 MATLAB 数值计算一、实验目的1.掌握求数值导数和数值积分的方法。

2.掌握代数方程数值求解的方法。

3.掌握常微分方程数值求解的方法。

二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。

三、实验内容1.线性系统方程:分别使用左除(\)和求逆(inv )求解下面系统方程的解:⎪⎩⎪⎨⎧=+=+=++377251463c b b a c b a2. 数值积分:使用quad 和trapz 求解⎰-503/dx xe x 的数值积分,并与其解析解9243/5+--e 相比较;3. 请完成教材P154页中实验指导环节的实验内容第2题4. 请完成教材P155页中思考练习的第3题(1),并绘制解在该求解区间(即[0,5])上的图像;。

5、请完成教材P164页实验指导环节的实验内容第5题。

(提示:该函数的符号导数,可以通过函数diff 求得。

首先定义符号变表达式,如求sin(x)的一阶符号导数,可以先定义f=’sin(x)’;df=diff(f);可求得df=cos(x)。

其中df 即为函数f 的一阶符号导数)。

四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。

6.实验结果及结果分析实验结果要求必须客观,现象。

结果分析是对实验结果的理论评判。

7.实验中出现的问题及解决方法8. 思考题的回答五、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: *******************(网络工程101提交作业邮箱):E_mail: *******************(注意网络班的M是大写的)下一次课前提交,过期不收!六、参考文献参考教材和Matlab帮助文件。

matlab的自定义函数

matlab的自定义函数

matlab的自定义函数Matlab是一种数学软件,可以用于解决各种数学问题。

在Matlab中,我们可以定义自己的函数来实现我们自己的算法或操作,并将它们存储为独立的文件,以便在需要时调用。

在本文中,我们将讨论Matlab自定义函数的创建过程。

function [output_var1, output_var2, ..., output_varn] =function_name(input_var1, input_var2, ..., input_varn)% Function bodyend其中,function_name为函数的名称,并且必须和函数脚本的文件名相同。

input_vars和output_vars则是输入和输出变量的名称,可以按需要进行命名。

function 关键字指示Matlab这是一个函数定义,并告诉Matlab返回的变量是什么。

在函数的主体内,我们可以按照Matlab语法进行各种运算和操作。

可以使用Matlab 中的任何工具箱或函数,要调用其他函数,则需要在函数主体中调用该函数。

例如,我们要在函数中计算两个变量a和b的和,可以使用以下代码:c = a + b;该代码实际上将a和b相加,并将结果保存到变量c中。

在函数主体内,我们还可以使用一些控制流结构,例如if语句和for循环等。

这样我们就可以编写更复杂的程序来解决更复杂的问题。

对于函数的输出,我们需要使用关键字“return”或通过指定输出变量来返回输出结果。

例如,如果我们的函数返回两个变量c和d,则我们可以使用以下代码:function [c, d] = calculate(a, b)% The function bodyc = a + b;d = a - b;end在这个例子中,我们返回了两个变量c和d,它们由a和b计算得到。

之后,在主程序中,我们可以使用这个函数来计算a和b的和与差:[cval, dval] = calculate(a_val, b_val);在这个例子中,我们将a_val和b_val传递给函数calculate(),并且我们将得到的结果保存到变量cval和dval中。

matlab求函数在指定点的数值导数

matlab求函数在指定点的数值导数

matlab求函数在指定点的数值导数在Matlab中,可以使用syms函数声明符号变量,并使用diff函数计算函数在指定点的数值导数。

首先,使用syms函数声明一个符号变量x,以表示自变量。

```syms x```然后,使用sym函数创建一个符号表达式,表示待求导函数。

例如,我们将求sin(x)在x=pi/4处的导数。

```f = sin(x);```接下来,使用diff函数求导数。

将待求导的函数和自变量作为参数传递给diff函数。

```df = diff(f, x);```现在,可以使用subs函数将x的值替换为指定的点,以求得函数在该点的数值导数。

```x_val = pi/4;df_val = subs(df, x, x_val);```df_val即为sin(x)在x=pi/4处的数值导数。

下面是完整的示例代码:```syms xf = sin(x);df = diff(f, x);x_val = pi/4;df_val = subs(df, x, x_val);disp(['The numerical derivative of sin(x) at x = pi/4 is 'num2str(df_val)]);```运行代码后,将输出如下结果:```The numerical derivative of sin(x) at x = pi/4 is 0.70711```这是sin(x)在x=pi/4处的数值导数。

当然,上述代码只是一个简单的示例。

对于更复杂的函数,我们可以根据需要进行相应的修改。

请注意,Matlab中的求导函数diff可以应对更复杂的情况,例如高阶导数和多变量函数的求导。

除了上述方法,Matlab还提供了一系列求导的函数,例如gradients函数、gradient函数和finitedifferences函数,它们可以在求解微分方程、优化问题和插值问题等场景下更加高效地求导。

MATLAB函数的使用方法及示例详解

MATLAB函数的使用方法及示例详解

MATLAB函数的使用方法及示例详解引言:MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的强大工具。

它不仅具备丰富的内置函数库,还可由用户编写函数,以满足各种复杂的计算需求。

本文将详细介绍MATLAB函数的使用方法,并通过示例来解释其具体应用。

一、MATLAB函数的定义与调用在MATLAB中,函数是一段封装了特定操作的可重复使用的代码,它可以接受输入参数,并返回输出结果。

函数的定义与调用是使用MATLAB的重要基础。

函数的定义:MATLAB中函数的定义以关键词"function"开头,后面跟着函数名和一对圆括号。

函数名用于函数的调用,圆括号内可定义输入参数。

函数体代码位于圆括号之后,用于实现函数的具体功能。

举个例子,定义一个简单的函数用于计算两个数的和:```function result = add(a, b)result = a + b;end```在这个例子中,`add`是函数名,`a`和`b`是输入参数,`result`是输出结果。

函数的调用:函数的调用通过函数名和相应的参数实现。

调用函数时,需要提供参数的值。

调用函数后,函数会执行其功能,并返回结果。

我们使用上面定义的`add`函数来进行示例调用:```x = 3;y = 5;sum = add(x, y);disp(sum);```在这个例子中,我们定义了两个变量`x`和`y`,分别赋值为3和5,然后调用`add`函数,并将结果赋值给变量`sum`。

最后,使用`disp`函数显示`sum`的值。

二、MATLAB内置函数的使用方法MATLAB提供了丰富的内置函数库,涵盖了数学、统计、信号处理、图像处理等各个领域。

下面我们将介绍几个常用的内置函数及其使用方法。

1. `sin`函数:`sin`函数用于计算给定角度的正弦值。

其使用方法为:```result = sin(angle);```其中,`angle`为角度的值,`result`为计算得到的正弦值。

matlab参数方程求导数

matlab参数方程求导数

matlab参数方程求导数MATLAB 是一款强大的计算工具,也可以用来求参数方程的导数。

本篇文章将介绍如何使用 MATLAB 求参数方程的导数。

从理论上讲,参数方程是指由一个或多个自变量决定的因变量的函数表达式。

参数方程常常用于描述曲线或曲面的几何特征,如圆形,椭圆形,螺旋线等。

在数学上,导数可以被认为是函数曲线在给定点处的切线的斜率。

因此,如果我们想要计算参数方程在某一点的斜率,我们需要计算该点的导数。

在 MATLAB 中,我们可以使用“diff”函数来计算参数方程的导数。

以下是利用 MATLAB 计算参数方程导数的步骤:1. 定义参数方程。

例如,如果我们希望计算二维曲线上点的导数,可以使用以下参数方程:x = sin(t);y = cos(t);这个参数方程描述了一个圆周,其中 t 是自变量,x 和 y 是因变量。

2. 计算参数方程中每个因变量的导数。

我们可以使用“diff”函数来计算导数。

针对上面的例子,我们可以使用以下代码计算 x 和y 的导数:dx = diff(x);dy = diff(y);3. 计算代表导数的向量。

由于 x 和 y 的导数是独立的,因此我们可以将它们组合成一个 vector,用于表示点的导数。

我们可以使用“sqrt”和“^2”的组合来计算向量的模。

以下是代码:v = sqrt(dx.^2 + dy.^2);4. 绘制代表导数的向量。

我们可以使用“quiver”函数将导数向量绘制成箭头。

箭头的大小和方向代表导数的大小和方向。

以下是代码:quiver(x(1:end-1), y(1:end-1), dx./v, dy./v);完整代码如下:t = linspace(0, 2*pi, 1000);x = sin(t);y = cos(t);dx = diff(x);dy = diff(y);v = sqrt(dx.^2 + dy.^2);quiver(x(1:end-1), y(1:end-1), dx./v, dy./v);最终的结果将会是一个以坐标轴交叉点为圆心的圆周,圆周上每个点代表 t 的取值,箭头表示该点处的导数。

MATLAB编程-自定义函数

MATLAB编程-自定义函数
如果函数没有修改这个参数它将不会对此参数进行复制而是简单地指向程序外面的外面的变量如果函数修改了这个参数那么这个复制就会被执53在笛卡尔平面内的一点p既可以用直角坐标系来描述又可以有极坐标来描述53直角坐标与极坐标的转换在笛卡尔平面上的一点的坐标既可以通过直角坐标xy来描述也可以通过极坐标r来描述如图53................................................................................................................... 1 5.1 MATLAB 函数简介 ........................................................................................................... 1 5.2 在 MATLAB 中传递变量:按值传递机制...................................................................... 6 例 5.3................................................................................................................................. 7 5.3 选择性参数 ...................................................................................................................... 14 测试 5.1 .......................................

数学建模matlab例题参考及练习

数学建模matlab例题参考及练习

数学建模matlab例题参考及练习数学实验与数学建模实验报告学院:专业班级:姓名:学号:完成时间:年⽉⽇承诺书本⼈承诺所呈交的数学实验与数学建模作业都是本⼈通过学习⾃⾏进⾏编程独⽴完成,所有结果都通过上机验证,⽆转载或抄袭他⼈,也未经他⼈转载或抄袭。

若承诺不实,本⼈愿意承担⼀切责任。

承诺⼈:年⽉⽇数学实验学习体会(每个⼈必须要写字数1200字以上,占总成绩的20%)练习1 ⼀元函数的图形 1.画出x y arcsin =的图象.2.画出x y sec =在],0[π之间的图象. 3.在同⼀坐标系中画出x y =,2x y =,3x y =,3x y =,x y =的图象.4.画出3232)1()1()(x x x f ++-=的图象,并根据图象特点指出函数)(x f 的奇偶性.5.画出)2ln(1++=x y 及其反函数的图象.6.画出321+=x y 及其反函数的图象.练习2 函数极限1.计算下列函数的极限.(1)xxx1lim4-+π→.程序:sym x;f=(1+sin(2*x))/(1-cos(4*x)); limit(f,x,pi/4)运⾏结果:lx21ans =1(2).程序:sym x;f=(1+cos(x))^(3*sec(x)); limit(f,x,pi/2)运⾏结果:lx22ans =exp(3)(3)22)2xx-ππ→.程序:sym x;f=log(sin(x))/(pi-2*x)^2; limit(f,x,pi/2)运⾏结果:lx23ans =-1/8(4)212lim xxex→.程序:x xx sec32)sym x ;f=x^2*exp(1/x); limit(f,x,0) limit(f,x,0,'right') limit(f,x,0,'left')运⾏结果:lx24ans = NaNans = Infans = 0%左极限为零,存在,右极限为⽆穷⼤,在x 趋近于零时函数没有极限(5))215(lim 122x x x x +-∞→.程序:sym x ;f=5*x^2/(1-x^2)+2^(1/x); limit(f,x,inf)运⾏结果:>> lx25ans = -4(6)x x x x x -+-→32112lim .程序:sym x ;f=(x^2-2*x+1)/(x^3-x); limit(f,x,1)运⾏结果:>> lx26ans = 0(7)x x x 11lim 20-+→.程序:sym x ;f=(sqrt(1+x^2)-1)/x; limit(f,x,0))3sin(cos 21lim 3π--π→x x x . 程序:sym x ;f=(1-2*cos(x))/sin(x-pi/3); limit(f,x,pi/3)运⾏结果:>> lx28ans = 3^(1/2)(9)tgxx x )1(lim 0+→.程序:sym x ;f=(1/x)^tan(x); limit(f,x,0,'right')运⾏结果:>> lx29ans =(10)xx arctgx )2(lim π+∞→.程序:sym x ;f=(2/pi*atan(x))^x; limit(f,x,inf,'left')运⾏结果:>> lx210ans =Inf2.解⽅程012=-?x x . 程序:sym x ;X=solve(x*2^x-1)运⾏结果:>> lx202 X =lambertw(0, log(2))/log(2)%⽅程有两个解X=solve(3*sin(x)+1-x)运⾏结果:>> lx203 X =-0.53847936154.解⽅程03=++q px x .(p 、q 为实数) 程序:X=solve('x^3+p*x+q=0','x')运⾏结果: X =((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3) - p/(3*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) p/(6*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) -((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)/2 - (3^(1/2)*i*(p/(3*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) + ((p^3/27 + q^2/4)^(1/2) -q/2)^(1/3)))/2 p/(6*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) - ((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)/2 + (3^(1/2)*i*(p/(3*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) + ((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)))/2练习 3 导数及偏导数计算1.求下列函数的导数.(1))11)(1(-+=x x y程序:sym x ;f=(sqrt(x)+1)*(1/sqrt(x)-1); diff(f)运⾏结果:>> lx31ans =(1/x^(1/2) - 1)/(2*x^(1/2)) - (x^(1/2) + 1)/(2*x^(3/2))(2)x x x y ln sin =程序:sym x ;f=x*sin(x)*log(x); diff(f)运⾏结果:>> lx32ans =sin(x) + log(x)*sin(x) + x*cos(x)*log(x)2.求下列参数⽅程所确定的函数的导数.(1)??==t y t x 44程序:ans =1/t^3(2)??-=+=arctgt t y t x )1ln(2程序:sym t ;f1=log(1+t^2);f2=t-atan(t); diff(f2)/diff(f1)运⾏结果:>> lx322ans =-((t^2 + 1)*(1/(t^2 + 1) - 1))/(2*t) 3.求下列隐函数的导数.(1)22ln y x xyarctg+=程序:syms x y ;f=atan(y/x)-log(sqrt(x^2+y^2));yx=-diff(f,x)/diff(f,y)运⾏结果;>> lx331 yx =(x/(x^2 + y^2) + y/(x^2*(y^2/x^2 + 1)))/(1/(x*(y^2/x^2 + 1)) - y/(x^2 + y^2)) (2)x y y x=程序:syms x y ; f=x^y-y^xyx=-diff(f,x)/diff(f,y)运⾏结果:>> lx332 f =x^y - y^x yx =f=exp(x)*sin(x); diff(f,x,4)运⾏结果:>> lx34 ans =(-4)*exp(x)*sin(x)5.验证x e y xsin =满⾜关系式:022=+'-''y y y程序:sym x ;f=exp(x)*sin(x); y2=diff(f,x,2); y1=diff(f,x,1); y=f;y2-y1*2+2*y=='0' 运⾏结果:>> lx35ans =1%运⾏结果为1表⽰y2-y1*2+2*y=='0'成⽴6.设)ln(y x x u +=,求22x u ??,22y u,y x u 2. 程序:syms x y ; f=x*log(x+y); uxx=diff(f,x,2) uyy=diff(f,y,2) f1=diff(f,x); uxy=diff(f1,y)运⾏结果: >> lx36uxx =2/(x + y) - x/(x + y)^2uyy =-x/(x + y)^2uxy =1/(x + y) - x/(x + y)^27.求下列多元隐函数的偏导数y zx z ,.(1)1cos cos cos 222=++z y x程序:syms x y z ;-(cos(x)*sin(x))/(cos(z)*sin(z)) zy =-(cos(y)*sin(y))/(cos(z)*sin(z))(2)xyz e z= 程序:syms x y z ; f=exp(z)-x*y*zzx=-diff(f,x)/diff(f,z) zy=-diff(f,y)/diff(f,z)运⾏结果:>> lx372 f =exp(z) - x*y*z zx =(y*z)/(exp(z) - x*y) zy =(x*z)/(exp(z) - x*y) 8.证明函数22)()(lnb y a x u -+-=(b a ,为常数)满⾜拉普拉斯⽅程:02222=??+??y u x u (提⽰:对结果⽤simplify 化简)练习4 积分计算1.计算下列不定积分.(1)?+dxx x 12 (2)+x xdx 2sin 12sin2.计算下列定积分.(1)?exdxx 1ln (2)ππ342sin dxxx3.求?+tdx x x x4.求摆线)cos 1(),sin (t a y t t a x -=-=的⼀拱(π≤≤20t )与x 轴所围成的图形的⾯积.5.计算⼆重积分 (1)??≤++122)(y x dxdyy x (2)??≤++xy x dxdyy x 22)(226.计算?+Ldsy x 22 L 为圆周)0(22>=+a ax y x7.计算?++-L dy y x dx y x )()(2222,其中L 为抛物线2x y =上从点(0,0)到点(2,4)的⼀段弧.练习5 matlab ⾃定义函数与导数应⽤1.建⽴函数x x a a x f 3sin 31sin ),(+=,当a 为何值时,该函数在3π=x 处取得极值,它是极⼤值还是极⼩值,并求此极值.2.确定下列函数的单调区间.(1)7186223---=x x x y (2))0(82>+=x xx y3.求下列函数的最⼤值、最⼩值.(1)2332x x y -=41≤≤-x(2)312824≤≤-+-=x x x y练习6 matab 矩阵运算与数组运算1.计算(1)???--521111204321+???21(2)??-01301213?03010*******????? ??-205101(3)52422??- 2.设????? ??-=243121013A ,??-=112111201B ,求满⾜关系B X A =-23的X .练习7 矩阵与线性⽅程组1.求下列矩阵的秩.(1)???-321110021 (2)4820322513454947513253947543173125 2.求下列矩阵的⾏列式,如可逆,试⽤不同的⽅法求其逆矩阵.(1)??--285421122 (2)??---6201111121324321 3.设X ????? ?-111012111==--+=+-+=+-+=+-+6223312433862344224221432143214321x x x x x x x x x x x x x x x x (2)-=+--=+--=-+-212201432143214321x x x x x x x x x x x x练习8 常微分⽅程与级数求1-6题微分⽅程的通解1.1222+='y y y x 2.x y x y dx dy -+= 3.x xx y y +='cos 4.1)2sin cos (='+y y y x 5.x e y y y x2cos 3=-'+'' 6.x x y y sin 14++=+'' 求7、8题初值问题的解7.==-++-+=10)2(212222x y dx dy x xy y y xy x8.===++==0000222,02V dt dx x x x a dt dxn dtx d t t9.给出函数x x e x f xx cos 2sin )(+=在点0=x 的7阶taylor 展开式以及在x=1处的 5阶taylor 展开式.10.判别下列级数的敛散性,若收敛求其和.(1)+++311(2)∑∞=+112n nntgπ11.求幂级数∑∞=--22)1(nnnnnx的和函数.12.求函数项级数∑∞=-1nnnn xπ的和函数.。

matlab 曲线 导数

matlab 曲线 导数

matlab 曲线导数在MATLAB中,计算曲线的导数可以使用不同的方法和函数。

以下是几种常见的方法:1. 数值方法:MATLAB提供了一些数值方法来近似计算曲线的导数,如差分法和微分法。

其中,差分法包括前向差分、后向差分和中心差分。

可以使用`diff`函数来计算差分导数,例如:matlab.x = linspace(0, 2pi, 100); % 创建一个包含100个点的等间距向量。

y = sin(x); % 计算sin(x)的值。

dy = diff(y) ./ diff(x); % 使用差分法计算导数。

这样,`dy`就是`y`的导数。

2. 符号计算方法:MATLAB还提供了符号计算的功能,可以使用符号变量和符号函数来进行导数计算。

通过使用`diff`函数和符号变量,可以直接计算函数的导数。

例如:matlab.syms x; % 定义符号变量x.y = sin(x); % 定义符号函数y.dy = diff(y, x); % 计算y对x的导数。

这样,`dy`就是`y`的导数。

3. 多项式拟合方法:如果曲线是由一组离散的点组成,可以使用多项式拟合方法来估计曲线的导数。

使用`polyfit`函数可以拟合多项式,并使用`polyder`函数求导。

例如:matlab.x = linspace(0, 2pi, 100); % 创建一个包含100个点的等间距向量。

y = sin(x); % 计算sin(x)的值。

p = polyfit(x, y, n); % 使用n次多项式拟合数据。

dp = polyder(p); % 求导。

这样,`dp`就是`y`的导数的多项式。

需要注意的是,以上方法适用于一维曲线的导数计算。

对于多维曲线,可以使用偏导数或梯度的概念来计算导数。

MATLAB提供了相应的函数和工具箱来处理多维曲线的导数计算,如`gradient`和`diff`函数。

希望以上回答能够满足你的需求。

如有其他问题,请随时提问。

matlab导数及应用 实验

matlab导数及应用 实验

实验三 导数及应用实验目的1. 深入理解导数与微分的概念,导数的几何意义。

掌握MATLAB 求导数与高阶导数的方法。

深入理解和掌握求隐函数的导数及由参数方程定义的函数的导数的方法。

2. 掌握用函数的导数确定函数的单调区间、凹凸区间和函数的极值的方法。

掌握用MATLAB 求方程的根和求函数的极值的方法。

实验内容● 求导数的命令为:diff ,常用格式为 >> syms x>> diff('f(x)',x)diff(f,x)给出f 关于x 的导数,而表达式f 中的其它字母看作常量。

因此如果表达式是多元函数,则给出的是偏导数。

>> diff('f(x)',x,n) 给出f 关于x 的n 阶导数或者偏导数。

● 多项式方程00111=+++--a x a xa x a n n n n 求根命令是:roots具体格式:roots (c)● 求一般方程0)(=x f 近似根的命令,一般形式为:⑴ 建立函数:f=inline('表达 式 ')⑵ 求函数零点:c=fzero(f, [a, b]) % 求函数f(x) 在区间[a, b] 内的零点c ; c=fzero(f, x0) % 求函数f(x) 在x0 附近的零点c ; fsolve 非线性方程求解fzero 标量非线性方程求解● 求非线性函数f(x) 的极小值,求一元函数极小值命令是 fminbnd,常用格式为: x=fminbnd(fun,x1,x2);[x,fav1]=fminbnd(fun,x1,x2);[x,fav1,exitflag,output]=fminbnd(fun,x1,x2);其中:x=fminbnd(fun,x1,x2) 是求(x1,x2)上fun 函数的最小值x 。

[x,fav1]=fminbnd(fun,x1,x2)返回解x 处目标函数的值。

MATLAB在高等数学实验中的应用

MATLAB在高等数学实验中的应用

MATLAB在高等数学实验中的应用在高等数学实验中,MATLAB是一种广泛应用的计算软件,它具有强大的数学计算能力和可视化处理功能。

本文将探讨MATLAB在高等数学实验中的应用,并展示其在解决实际问题和学习数学概念中的优势。

一、MATLAB在函数绘图中的应用函数绘图是高等数学实验中常见的任务之一。

MATLAB提供了丰富的绘图函数和图形工具箱,可以方便地绘制各种函数的图像,并进行定量分析。

使用MATLAB绘制函数图像的基本步骤如下:1. 定义函数表达式:通过MATLAB的符号计算工具箱或直接使用符号表达式来定义函数。

2. 创建绘图窗口:使用MATLAB的绘图函数,如plot、scatter等来创建绘图窗口,并设置绘图参数。

3. 绘制函数图像:将定义好的函数表达式作为参数传递给绘图函数,即可绘制函数图像。

4. 添加坐标轴、标题和图例:通过MATLAB的绘图函数设置坐标轴、标题和图例等信息,以增强图像的可读性。

除了基本的函数绘图,MATLAB还可以绘制等高线图、三维曲面等复杂的图形,帮助学生更直观地理解数学概念和解决实际问题。

二、MATLAB在求解微分方程中的应用微分方程是高等数学中的重要内容,解微分方程需要进行数值计算。

MATLAB具有强大的数值计算能力和求解微分方程的工具箱,可以高效地求解各种类型的微分方程。

MATLAB中求解微分方程的基本步骤如下:1. 定义微分方程:使用MATLAB的符号计算工具箱来定义微分方程。

可以采用符号表达式或匿名函数的形式定义微分方程。

2. 设置初值条件:对于常微分方程,需要给出初值条件。

通过定义符号变量或直接赋值的方式,设置初值条件。

3. 调用求解函数:使用MATLAB的求解微分方程工具箱中的函数,如ode45、ode23等,传入定义好的微分方程和初值条件,即可求解微分方程。

4. 绘制解曲线:将求解得到的数值解通过MATLAB的绘图功能进行可视化展示,以增加对解的理解和分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验5 matlab 自定义函数与导数应用
实验目的
1.学习matlab 自定义函数.
2.加深理解罗必塔法则、极值、最值、单调性.
实验内容
1.学习matlab 自定义函数及求函数最小值命令.
函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab 软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab 允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab 函数库中,显然这为matlab 提供了扩展的功能,无庸置疑,这也正是matlab 的精髓所在.因为matlab 的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab 自定义函数是一个指令集合,第一行必须以单词function 作为引导词,存为具有扩展名“.m ”的文件,故称之为函数M -文件.
函数M -文件的定义格式为:
function 输出参数=函数名(输入参数)
函数体
……
函数体
一旦函数被定义,就必须将其存为M -文件,以便今后可随时调用.比如我们希望建立
函数12)(2++=x x x f ,在matlab 工作区中输入命令:
syms x ;y=x^2+2*x+1;
不能建立函数关系,只建立了一个变量名为y 的符号表达式,当我们调用y 时,将返回这一表达式.
y ↵
y=x^2+2*x+1
当给出x 的值时,matlab 不能给出相应的函数值来.
x=3;y ↵
y=x^2+2*x+1
如果我们先给x 赋值.
x=3;y=x^2+2*x+1
得结果:y=16
若希望得出2|=x y 的值,输入:
x=2;y ↵
得结果:y=16,不是2=x 时的值.读者从这里已经领悟到在matlab 工作区中输入命令:y=x^2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单Fill\New\M-fill 打开matlab 文本编辑器,输入:
function y=f1(x)
y=x^2+2*x+1;
存为f1.m .调用该函数时,输入:
syms x ;y=f1(x)↵
得结果:y= x^2+2*x+1.输入:
y1=f1(3)↵
得结果:y1=16
matlab 求最小值命令fmin 调用格式:
fmin(‘fun’,a ,b) 给出)(x f 在),(b a 上的最小值点.
2.自定义函数
例5.1.建立正态分布的密度函数
2
22)(21),.,(σμ--
σπ=μσx e x f
解:打开文本编辑器,输入:
function y=zhengtai(x ,a ,b)
y=1/sqrt(2*pi)/a*exp(-(x-b).^2/2/a^2);
存为zhengtai.m .调用时可输入命令:
y=zhengtai(1,1,0)
得结果:y=0.2420.此即)0,1,1(f 的值.如果想画出标准正态分布的密度函数的图象,输入: ezplot(zhengtai(x ,1,0))
例5.2.解一元二次方程02=++c bx ax .
解:我们希望当输入c b a ,,的值时,计算机能给出方程的两个根.在文本编辑器中建立名为rootquad.m 的文件.
function [x1,x2]=rootquad(a ,b ,c)
d=b*b-4*a*c ;
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
比如求方程07322=-+x x 的根,可用语句:
[r1,r2]=rootquad(2,3,-7)
得结果:r1=1.2656
r2=-2.7656
2.验证罗必塔法则. 罗必塔法则是指在求00及∞∞
的极限时,可用导数之比的极限来计算(如果导数之比的极限存在或∞)
例5.3.以x b
a x x x -→0lim 为例验证罗必塔法则.
解:这是00
型极限
f=a^x-b^x ;g=x ;L=limit(f/g ,x ,0)
得结果:L=log(a)-log(b)
df=diff(f ,x);dg=diff(g ,x);L1=limit(df/dg ,x ,0)
得结果:L1=log(a)-log(b)
从结果看出:L=L1,即
x b a x x x -→0lim =x b a x x x '-→'0)(lim
4.函数的单调性与极值.
例5.4.求函数396)(23++-=x x x x f 的单调区间与极值.
解:求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点,利用matlab 解决该问题,我们可以先求出导函数的零点,再画出函数图象,根据图象可以直观看出函数的单调区间与极值.输入命令:
f=x^3-6*x^2+9*x+3;df=diff(f ,x);s=solve(df)
得结果:ans=[1,3],画出函数图象.
ezplot(f ,[0,4])
从图上看,)(x f 的单调增区间为)1,(-∞、),1(+∞,单调减区间是)3,1(,极大值7)1(=f ,极小值3)3(=f .
我们可以建立一个名为dandiao.m 的M —文件,用来求求函数的单调区间.
disp(‘输入函数(自变量为x )’)
syms x
f=input('函数f(x)=')
df=diff(f);
s=solve(df)
a=[];
for i=1:size(s);
a(i)=s(i); end
ezplot(f ,[min(a)-1,max(a)+1])
要求函数)1ln(x x y +-=的单调区间与极值,可调用dandiao.m .输入:
dandiao ↵
在matlab 工作区出现以下提示:
输入函数(自变量为x )
函数f(x)=
在光标处输入:x-log(1+x),可得结果s=0.从图上看,)(x f 的单调增区间为),0(+∞,
单调减区间是)0,(-∞,极小值0)0(=f .
5.函数的最值
调用求函数最小值命令fmin 时,可得出函数的最小值点,为求最小值,必须建立函数M —文件.
例5.5.求函数1)3()(2--=x x f 在区间)5,0(上的最小值.
解:我们可以建立一个名为f.m 的函数M -文件.
function y=f(x)
y=(x-3).^2-1;
并且调用fmin
x=fmin((‘f’,0,5)
得:x=3,)(x f 在最小值点处的值(函数最小值)是1)3(-=f .
求最大值时可用x=fmin(‘-f(x)’,a ,b)
练习
1.建立函数x x a a x f 3sin 31sin ),(+=,当a 为何值时,该函数在

=x 处取得极值,它是极大值还是极小值,并求此极值.
2.确定下列函数的单调区间.
(1)7186223---=x x x y (2))0(82>+=x x x y
(3))1ln(2x x y ++= (4)3)1)(1(+-=x x y
3.求下列函数的最大值、最小值.
(1)2332x
x y -=41≤≤-x (2)312824≤≤-+-=x x x y。

相关文档
最新文档