基于MATLAB的微积分数值计算实验报告

合集下载

实验一B Matlab基本操作与微积分计算

实验一B Matlab基本操作与微积分计算

实验一Matlab基本操作与微积分计算实验目的1.进一步理解导数概念及其几何意义.2.学习matlab的求导命令与求导法.3.通过本实验加深理解积分理论中分割、近似、求和、取极限的思想方法.4.学习并掌握用matlab求不定积分、定积分、二重积分、曲线积分的方法.5.学习matlab命令sum、symsum与int.实验内容一、变量1、变量MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.1、创建简单的数组x=[a b c d e f ]创建包含指定元素的行向量x=first:step: last创建从first起,逐步加step计数,last结束的行向量, step缺省默认值为1x=linspace(first,last,n)创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n)创建从first开始,到last结束,有n个元素的对数分隔行向量.注:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.2、数组元素的访问(1)访问一个元素: x(i)表示访问数组x的第i个元素.(2)访问一块元素: x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.(3)直接使用元素编址序号: x ([a b c d]) 表示提取数组x的第a、b、c、d个元素构成一个新的数组[x (a) x (b) x(c) x(d)].3、数组的运算(1)标量-数组运算数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.设:a=[a1,a2,…,an], c=标量, 则:a+c=[a1+c,a2+c,…,an+c]a .*c=[a1*c,a2*c,…,an*c]a ./c= [a1/c,a2/c,…,an/c](右除)a .\c= [c/a1,c/a2,…,c/an] (左除)a .^c= [a1^c,a2^c,…,an^c]c .^a= [c^a1,c^a2,…,c^an](2)数组-数组运算当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.设:a=[a1,a2,…,an], b=[b1,b2,…,bn], 则:a +b= [a1+b1,a2+b2,…,an+bn]a .*b= [a1*b1,a2*b2,…,an*bn]a ./b= [a1/b1,a2/b2,…,an/bn]a .\b=[b1/a1,b2/a2,…,bn/an]a .^b=[a1^b1,a2^b2,…,an^bn]三、矩阵1、矩阵的建立矩阵直接输入:从“[ ” 开始,元素之间用逗号“,”(或空格),行之间用分号“;”(或回车),用“ ]”结束.特殊矩阵的建立:a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.b=zeros (m,n) 产生一个m行、n列的零矩阵c=ones (m,n) 产生一个m行、n列的元素全为1的矩阵d=eye (m,n) 产生一个m行、n列的单位矩阵eye (n) %生成n维的单位向量eye (size (A)) %生成与A同维的单位阵2、矩阵中元素的操作(1)矩阵A的第r行A(r,:)(2)矩阵A的第r列A(:,r)(3)依次提取矩阵A的每一列,将A拉伸为一个列向量A(:)(4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1 )(7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ](8)删除A的第j1~j2列,构成新矩阵:A(:, j1:j2)=[ ](9)将矩阵A和B拼接成新矩阵:[A B];[A;B]3、矩阵的运算(1)标量-矩阵运算同标量-数组运算.(2)矩阵-矩阵运算a. 元素对元素的运算,同数组-数组运算.(A/B %A右除B; B\A %A左除B)b. 矩阵运算:矩阵加法:A+B矩阵乘法:A*B方阵的行列式:det(A)方阵的逆:inv(A)方阵的特征值与特征向量:[V,D]=eig[A] A 的转置 A’ A 的n 次幂A^n 四、导数及偏导数计算 1.学习matlab 命令.建立符号变量命令sym 和syms 调用格式: x=sym(‘x’), 建立符号变量x ;syms x y z , 建立多个符号变量x,y,z ; matlab 求导命令diff 调用格式:diff (函数()f x ) , 求()f x 的一阶导数()f x ';diff (函数()f x , n ) , 求()f x 的n 阶导数()()n f x (n 是具体整数); diff (函数(,)f x y ,变量名x ), 求(,)f x y 对x 的偏导数f x∂∂; diff (函数(,)f x y , 变量名x ,n ) ,求(,)f x y 对x 的n 阶偏导数n n fx∂∂;matlab 求雅可比矩阵命令jacobian ,调用格式:jacobian ([(,,)f x y z ;(,,)g x y z ;(,,)h x y z ], [,,x y z ])给出: f f f x y z gg g x y z h h h xyz ⎛⎫∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂⎝⎭2.求一元函数的导数. (1)()y f x =的一阶导数. 例1.1 设()x f x e =,用定义计算(0)f '. 解:()f x 在某一点0x 的导数定义为极限: 000()()limx f x x f x x∆→+∆-∆我们记h x =∆,输入命令:syms h;limit((exp(0+h)-exp(0))/h,h,0) 得结果:ans=1.可知(0)1f '= 例1.2 求ln(sin )y x =的导数. 解: 输入命令:dy_dx=diff(log(sin(x))). 得结果:dy_dx=cos(x)/sin(x).在matlab 中,函数x ln 用log(x)表示,而log10(x)表示x lg .例1.3 求下列函数的导数: %利用matlab 命令diff 一次可以求出若干个函数的导数.1.1y =2.22cos 2cos2y x x =+.3.xy sin 34=.4.xy ln ln 4=. 解: 输入命令:a=diff([sqrt(x^2- 2*x+5),cos(x^2)+2*cos(2*x),4^(sin(x)),log(log(x))]). 得结果:a=[1/2/(x^2-2*x+5)^(1/2)*(2*x-2), -2*sin(x^2)*x-4*sin(2*x), 4^sin(x)*cos(x)*log(4), 1/x/log(x)].由本例可以看出,matlab 函数是对矩阵或向量进行操作的,a(i)表示向量a 的第i 个分量.函数向量的第i 个函数的导数为导数向量中对应的元素。

实验六 matlab数值微分积分实验

实验六 matlab数值微分积分实验

软件学院 MATLAB 程序设计 课程实验报告 201 ~201 学年 第 学期 级 专业班级: 学号: 姓名:实验六 数值微分积分实验一、实验目的1.掌握基本的插值与拟合方法2.掌握使用数学工具Matlab 进行实际问题的插值和拟合建模二、实验内容1.解微分方程2. 求解积分三、实验环境1.工具软件:MATLAB2012b四、实验步骤1. 解微分方程(1)微分方程的解析解dsolve(‘方程1’, ’方程2’,…‘方程n ’, ‘初始条件…’, ‘自变量’)求微分方程的特解⎪⎩⎪⎨⎧===++15)0(',0)0(029422y y y dx dy dx y d(2)求微分方程组的通解⎪⎪⎪⎩⎪⎪⎪⎨⎧+-=+-=+-=z y x dtdz z y x dt dy zy x dt dx 244354332(3)常微分方程的数值解[t ,x]=solver (’f ’, ts, x0, options )解微分方程组⎪⎪⎩⎪⎪⎨⎧===-=-==1)0(,1)0(,0)0(51.0'''321213312321y y y y y y y y y y y y(4)实例-微分方程设位于坐标原点的甲舰向位于x 轴上点A(1, 0)处的乙舰发射导弹,导弹头始终对准乙舰.如果乙舰以最大的速度v 0(是常数)沿平行于y 轴的直线行驶,导弹的速度是5v 0,求导弹运行的曲线方程,并绘图表示。

2. 求解积分(1) quad 函数、quadl 函数quad8函数来求定积分例:被积函数f(x)=x*sin(x)/(1+cos(x)*cos(x)),x 的范围自定义(2) 梯形积分函数trapzX = sort(rand(1,101)*pi);Y = sin(X);Z = trapz(X,Y);(3)dblquad 函数用于求二重积分的数值解自变量范围:pi <= x <= 2*pi, 0 <= y <= pi ;被积函数z = y*sin(x)+x 2*cos(y)(4)triplequad 函数用于求三重积分的数值解五、分析与思考1、什么是解析解?什么是数值解?六、实验总结。

计算方法实验报告matlab

计算方法实验报告matlab

计算方法实验报告matlab《使用MATLAB进行计算方法实验报告》摘要:本文利用MATLAB软件进行了一系列计算方法实验,包括数值积分、微分方程求解、线性代数计算等。

通过实验结果分析,我们验证了各种计算方法的准确性和稳定性,为进一步研究和应用这些方法提供了可靠的数值支持。

引言:计算方法是现代科学和工程中不可或缺的一部分,它们通过数值计算的方式解决了许多复杂的数学问题。

MATLAB作为一种强大的数值计算工具,被广泛应用于各种计算方法的实验和研究中。

本文将利用MATLAB进行一系列计算方法实验,验证其在数值计算中的有效性和实用性。

实验一:数值积分在本实验中,我们将使用MATLAB对一些常见的积分问题进行数值求解,比较不同数值积分方法的精度和收敛速度。

通过实验结果的分析,我们将评估各种数值积分方法的适用范围和优缺点。

实验二:微分方程求解微分方程是自然界和工程领域中常见的数学模型,其数值求解方法对于模拟和预测系统行为至关重要。

在本实验中,我们将使用MATLAB对一些典型的微分方程进行数值求解,并比较不同数值方法的稳定性和精度。

实验三:线性代数计算线性代数是现代科学和工程中的基础学科,其在数据处理、信号处理、优化等领域中有着广泛的应用。

在本实验中,我们将利用MATLAB进行一些常见的线性代数计算,比如矩阵求逆、特征值分解等,验证其数值计算的准确性和效率。

结论:通过以上一系列的实验,我们验证了MATLAB在计算方法实验中的有效性和实用性。

我们发现,MATLAB提供了丰富的数值计算工具和函数库,能够满足各种计算方法实验的需求。

同时,我们也发现不同的计算方法在不同的问题上有着各自的优势和局限性,需要根据具体问题选择合适的方法。

希望本文的实验结果能够为相关领域的研究和应用提供一定的参考和借鉴。

MATLAB数值积分求值实验报告

MATLAB数值积分求值实验报告
k=0;
fori=1:n
x=rand;%产生(0,1)区间的随机数
y=rand;
ify<=1/(1+x^2);%对y=1/(1+x^2)面积投点
k=k+1;
end
end
z=k/n
pi=4*k/n%由积分pi/4=k/n而来,前者是概率,后者是频率
四.蒙特卡罗均值估计法:
n=10000;
x=rand(1,n);
姓名:
2011年11月27日
学号
班级
统计1001
姓名
指导教师
易昆南
实验题目
用多种方法计算数值积分
评 分
1、设计(实习)目的:
1.了解MATLAB在实际问题中的应用
2.通过实践加深对这门语言中M文件的了解
3.熟悉简单程序结构,如循环结构(for循环、while循环)选择结构(if-else-if)、分支语句(switch-case-otherwise)。
y=x.^2;
z=sum(y)/n%均值估计法
4:实验结果:
一.左、右矩形法和梯形法:
z1 =
0.3308
z2 =
0.3358
z3 =
0.3333
二.复化辛普森公式法:
z1 =
0.3Байду номын сангаас33
z2 =
0.3333
Warning: QUAD8 is obsolete. We use QUADL instead.
2、实验内容:
(1).分别用左、右矩形法,梯形法,复化辛普森公式计算y=x^2在[0,1]上的定积分;
(2).用蒙特卡罗随机投点法计算y=1/(1+x^2)在[0,1]上的定积分,并求出pi的近似值;

MATLAB数值运算实验报告

MATLAB数值运算实验报告

实验报告系(部):信息工程班级:XX:学号:课程:MATLAB 实验名称:Matlab数值运算目录一. 实验目的2二. 实验容2三. 实验步骤2四. 实验具体过程及数据分析4五. 实验原始记录12六. 实验心得、体会及思考14一. 实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握构造数组和细胞数组的操作。

二. 实验容1.多项式运算。

2.多项式插值和拟合。

3.数值微积分。

4.构造数组和细胞数组。

三. 实验步骤1.多项式运算(1)多项式表示。

在MATLAB中,多项式表示成向量形式。

如:s^4+3s*s^3-5*s^2+9>>S=[1 3 -5 0 9](2)多项式的加减法相当于向量的加减法,但须注意阶次要一样。

如不同,低阶要补0。

如多项式2*s^2+3*s+9与多项式s^4+3*s^3-5*s^2+4s+7相加。

(3)多项式的乘、除法分别用函数conv和deconv实现。

(4)多项式求根用函数roots(5)多项式求值用函数polyval练习1:求(s^2+1)(s+3)(s+1)/(s^3+2*s+1)的“商〞及“余〞多项式2.多项式插值和拟合有一组实验数据如表所示请分别用拟合〔二阶至三阶〕和插值〔线性和三次样条〕的方法来估测X=9.5时Y的值。

3.数值微积分(1)差分使用diff函数的实现(2)可以用因变量和自变量差分的结果相除得到数值微分(3)Cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积练习:如图瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向向为X轴,由南到北方为Y轴,选择方便的原点,并将从最西边点到最东边界点在X轴的区间适当划分假设干级,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到了下表,根据地图比例知道18mm相当于40km,试有测量数据计算瑞士国土近似面积,与其准确值41228km^2比拟。

4.构造数组与细胞数组(1)构造数组的创立(2)构造数组的操作练习:创立一构造数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average。

Matlab微积分问题计算机求解实验

Matlab微积分问题计算机求解实验

>> q2=quad('quad1',0,1)
【例】求exp(-x2)在[0,1]上的积分。
数值积分
3、编写被积函数表达式,函数名为f=@(x).exp(-x.^2);
>> q2=quad(f,0,1)
数值积分
(2)梯形法(被积函数由一个表格定义)
trapz函数采用梯形法求取数值积分,适用于由表格形式定义的函数关系的求定积分问题,求值速度快, 但精度差。
syms x; f=abs(x)/x;%给出待展开的函数 xx=[-pi:pi/200:pi]; xx=xx(xx~=0); xx=sort([xx,-eps,eps]);
Fourier级数的Matlab程序
yy=subs(f,x,xx);%计算f(x)的值 for i=1:20
[A,B,F]=fseries(f,x,n); y=subs(F,x,xx); subplot(4,5,n); plot(xx,yy);%画出f(x)的图像 hold on plot(xx,y);%画出Fourier级数的图像 end
K ex2dx 0
计算积分
21
( x1)2
练习:
e 2 dx,
0 2
e2t 2 x 2 1
dx
cost (2 x 2 3 x 1)2
符号求和
symsum(u,n,n0,nn): symsum(f,a,b): 关于默认变量求和
例:计算级数
S 1 及其前100项的部2 分和 n n 1
>> syms n; f=1/n^2;
>> S=symsum(f,n,1,inf)
>> S100=symsum(f,n,1,100)

matlab数值计算实验报告

matlab数值计算实验报告

matlab数值计算实验报告Matlab数值计算实验报告引言:Matlab是一种广泛应用于科学与工程领域的高级计算机语言和环境,它提供了丰富的函数库和工具箱,方便用户进行数值计算、数据分析和可视化等任务。

本实验报告将介绍我在使用Matlab进行数值计算实验中的一些经验和心得体会。

一、数值计算方法数值计算方法是一种利用数值近似来解决实际问题的方法,它在科学和工程领域具有广泛的应用。

在Matlab中,我们可以利用内置的函数和工具箱来实现各种数值计算方法,例如插值、数值积分、数值微分等。

二、插值方法插值是一种通过已知数据点来推测未知数据点的方法。

在Matlab中,我们可以使用interp1函数来进行插值计算。

例如,我们可以通过已知的一些离散数据点,利用interp1函数来估计其他位置的数值。

这在信号处理、图像处理等领域具有重要的应用。

三、数值积分数值积分是一种通过分割曲线或曲面来近似计算其面积或体积的方法。

在Matlab中,我们可以使用quad函数来进行数值积分计算。

例如,我们可以通过quad函数来计算某个函数在给定区间上的积分值。

这在概率统计、物理学等领域具有广泛的应用。

四、数值微分数值微分是一种通过数值逼近来计算函数导数的方法。

在Matlab中,我们可以使用diff函数来进行数值微分计算。

例如,我们可以通过diff函数来计算某个函数在给定点上的导数值。

这在优化算法、控制系统等领域具有重要的应用。

五、数值求解数值求解是一种通过数值近似来计算方程或方程组的根的方法。

在Matlab中,我们可以使用fsolve函数来进行数值求解计算。

例如,我们可以通过fsolve函数来求解某个非线性方程的根。

这在工程计算、金融分析等领域具有广泛的应用。

六、实验应用在本次实验中,我使用Matlab进行了一些数值计算的应用实验。

例如,我利用插值方法来估计某个信号在给定位置的数值,利用数值积分方法来计算某个曲线下的面积,利用数值微分方法来计算某个函数在给定点的导数值,以及利用数值求解方法来求解某个方程的根。

MATLAB数学实验三求积分实验报告

MATLAB数学实验三求积分实验报告

数学实验报告三:MATLAB 中一元函数积分的计算
1、积分有定积分和不定积分,运用函数int 可以求得符号表达式的积分.
int(f) 求函数f 对默认自由变量x 的不定积分
int(f,t) 求函数f 对符号变量t 的不定积分
int(f,a,b) 求函数f 对默认自由变量x 从a 到b 的定积分
int(f,t,a,b) 求函数f 对符号变量t 从a 到b 的定积分
2、积分应用——求面积
解方程 [x,y]=solve(‘f1=0’,‘f2=0’)
作图:ezplot(f,[x1,x2],[y1,y2]); hold on 在同一坐标系作图
写出积分表达式进行积分
3、清除变量clear 清屏clc 清除图像 clf
班级 姓名 学号 成绩
1、 求下列函数的积分
(1) ln x xdx ⎰ (2)2cos x xdx ⎰
(3)20sin d 2x x π⎰ (4)1
01x x e dx e +⎰
2、 求抛物线2x y =与直线20x y --=所围图形面积.
要求:(1)解方程,求交点
(2)作图:在同一坐标系作出这两个函数的图形
(3)写出积分表达式 进行积分计算。

数值分析matlab实验报告

数值分析matlab实验报告

数值分析matlab实验报告《数值分析MATLAB实验报告》摘要:本实验报告基于MATLAB软件进行了数值分析实验,通过对不同数学问题的数值计算和分析,验证了数值分析方法的有效性和准确性。

实验结果表明,MATLAB在数值分析领域具有较高的应用价值和实用性。

一、引言数值分析是一门研究利用计算机进行数值计算和分析的学科,其应用范围涵盖了数学、物理、工程等多个领域。

MATLAB是一种常用的数值计算软件,具有强大的数值分析功能,能够进行高效、准确的数值计算和分析,因此在科学研究和工程实践中得到了广泛的应用。

二、实验目的本实验旨在通过MATLAB软件对数值分析方法进行实验验证,探究其在不同数学问题上的应用效果和准确性,为数值分析方法的实际应用提供参考和指导。

三、实验内容1. 利用MATLAB进行方程求解实验在该实验中,利用MATLAB对给定的方程进行求解,比较数值解和解析解的差异,验证数值解的准确性和可靠性。

2. 利用MATLAB进行数值积分实验通过MATLAB对给定函数进行数值积分,比较数值积分结果和解析积分结果,验证数值积分的精度和稳定性。

3. 利用MATLAB进行常微分方程数值解实验通过MATLAB对给定的常微分方程进行数值解,比较数值解和解析解的差异,验证数值解的准确性和可靠性。

四、实验结果与分析通过对以上实验内容的实际操作和分析,得出以下结论:1. 在方程求解实验中,MATLAB给出的数值解与解析解基本吻合,验证了MATLAB在方程求解方面的高准确性和可靠性。

2. 在数值积分实验中,MATLAB给出的数值积分结果与解析积分结果基本吻合,验证了MATLAB在数值积分方面的高精度和稳定性。

3. 在常微分方程数值解实验中,MATLAB给出的数值解与解析解基本吻合,验证了MATLAB在常微分方程数值解方面的高准确性和可靠性。

五、结论与展望本实验通过MATLAB软件对数值分析方法进行了实验验证,得出了数值分析方法在不同数学问题上的高准确性和可靠性。

实验09 数值微积分与方程数值解(第6章)

实验09 数值微积分与方程数值解(第6章)

实验09 数值微积分与方程数值求解(第6章 MATLAB 数值计算)一、实验目的二、实验内容1. 求函数在指定点的数值导数232()123,1,2,3026x x x f x x xx x==2. 用数值方法求定积分(1) 210I π=⎰的近似值。

程序及运行结果:《数学软件》课内实验王平(2) 2221I dx x π=+⎰程序及运行结果:3. 分别用3种不同的数值方法解线性方程组6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩ 程序及运行结果:4. 求非齐次线性方程组的通解1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩5. 求代数方程的数值解(1) 3x +sin x -e x =0在x 0=1.5附近的根。

程序及运行结果(提示:要用教材中的函数程序line_solution ):(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。

23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩6. 求函数在指定区间的极值(1) 3cos log ()xx x x xf x e ++=在(0,1)内的最小值。

(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。

7. 求微分方程的数值解,并绘制解的曲线2250(0)0'(0)0xd y dyy dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩程序及运行结果(注意:参数中不能取0,用足够小的正数代替):令y 2=y,y 1=y ',将二阶方程转化为一阶方程组:'112'211251(0)0,(0)0y y y x x y y y y ⎧=-⎪⎪=⎨⎪==⎪⎩8. 求微分方程组的数值解,并绘制解的曲线123213312123'''0.51(0)0,(0)1,(0)1y y y y y y y y y y y y =⎧⎪=-⎪⎨=-⎪⎪===⎩程序及运行结果:三、实验提示四、教程:第6章 MATLAB 数值计算(2/2)6.2 数值微积分 p155 6.2.1 数值微分1. 数值差分与差商对任意函数f(x),假设h>0。

工程数值计算matlab实验报告——辛普森数值微分数值积分

工程数值计算matlab实验报告——辛普森数值微分数值积分

《工程数值计算》上机实验报告(第二次)学生姓名 *** 班级 ******* 学号 ***********任课教师 *** 上机时间 2019 年 11月 5 日,报告完成 2019 年 11月 6 日1.实验目的:做功计算重物在力F(x)的拖动下,从x的起始点到最后点的移动过程中,力的大小及角度都是变化的,数据如表所示,试完成以下任务。

任务 2.1:试计算所做的功(数值积分实验)(1)分别采用梯形公式、辛普森公式和柯特斯公式计算,并进行比较(参考程序2.1a)。

(2)先对数据点进行多项式回归,再用int函数进行积分计算,并比较(参考程序2.1b)。

任务 2.2:试计算力在位移方向的变化率(数值微分实验)(1)基于给定的数据点,利用三点插值求各点处的导数(参考程序2.2)。

2.计算方法:针对实验任务,结合课堂内容,说明解决方法,如:采用何种理论,列出相关公式,说明计算步骤,写出程序框图等;任务2.1:数值积分计算原理:梯形公式辛普森公式柯特斯公式(n=4,即五个节点时)流程图:任务2.2:数值微分计算原理(三点插值):已知三个节点、、上的函数值,则流程图:3.程序设计:根据前面提到的计算方法编写程序;写出程序代码,并结合计算方法对程序中关键步骤进行必要的文字说明;代码:任务2.1:数值积分%数据输入clear;xi=[0 5 10 15 20 25 30 35 40];a=xi(1);b=xi(end);h=b-a;Fi=[0;9;13;14;10.5;12;5;8;9];Th=[0.5;1.4;0.75;0.9;1.3;1.48;1.5;1.1;0.8];%(1)%求x方向分力大小for i=1:length(xi)P(i)=Fi(i)*cos(Th(i));end%梯形公式,两个求积节点T=[0.5;0.5];%(系数)I1=h*(T(1)*P(1)+T(2)*P(9));%(梯形公式)%辛普森公式,三个求积节点S=[1/6;2/3;1/6];%(辛普森公式系数)I2=h*(S(1)*P(1)+S(2)*P(5)+S(3)*P(9));%(辛普森公式)%柯特斯公式,五个求积节点C=[7/90;16/45;2/15;16/45;7/90];%(柯特斯公式系数)I4=h*(C(1)*P(1)+C(2)*P(3)+C(3)*P(5)+C(4)*P(7)+C(5)*P(9));%(柯特斯公式)%显示结果I=[I1;I2;I4]%(2)多项式回归,再用int函数积分计算Ya=polyfit(xi,P,2);%(2次多项式回归)Yb=polyfit(xi,P,3);%(3次多项式回归)Yc=polyfit(xi,P,4);%(4次多项式回归)%构造回归多项式函数形式syms xLa=Ya(1)*x^2+Ya(2)*x+Ya(3);%(构造2次多项式函数)Lb=Yb(1)*x^3+Yb(2)*x^2+Yb(3)*x+Yb(4);%(构造3次多项式函数)Lc=Yc(1)*x^4+Yc(2)*x^3+Yc(3)*x^2+Yc(4)*x+Yc(5);%(构造4次多项式函数)%积分计算Ia=int(La,a,b);Ib=int(Lb,a,b);Ic=int(Lc,a,b);%显示计算结果II=[vpa(Ia);vpa(Ib);vpa(Ic)]%(将分数转化为小数输出)任务2.2:数值微分%数据输入clear;xi=[0 5 10 15 20 25 30 35 40];%(间隔为空格)a=xi(1);b=xi(end);Fi=[0;9;13;14;10.5;12;5;8;9];Th=[0.5;1.4;0.75;0.9;1.3;1.48;1.5;1.1;0.8];n=length(xi);%主体程序for i=1:nyi(i)=Fi(i)*cos(Th(i));endR=zeros(n,2);%(建立一个9*2的矩阵)%矩阵R的第一列记为点的序数for i=1:nR(i,1)=i;end%三点插值求导,导数值记入R矩阵的第二列中for i=1:nif i==1R(i,2)=(-3*yi(i)+4*yi(i+1)-yi(i+2))/(xi(i+2)-xi(i));%(第一个点的导数) else if i==nR(i,2)=(yi(i-2)-4*yi(i-1)+3*yi(i))/(xi(i)-xi(i-2));%(最后一个点的导数)elseR(i,2)=(yi(i+1)-yi(i-1))/(xi(i+1)-xi(i-1));%(中间点的导数)endendend%输出结果R4.结果分析:给出计算结果(可用数值、图表、曲线表示),并进行分析;任务2.1:数值积分由输出结果可以看出,梯形公式、辛普森公式、柯特斯公式的计算结果相差较大而2、3、4次多项式回归后再积分的结果相差较小,其中2、3次回归结果相差几乎可以不计。

用MATLAB解微积分问题的实验报告4

用MATLAB解微积分问题的实验报告4

>>xa=-2:0.2:2;ya=-2:0.5:2;[x,y]=meshgrid(xa,ya); >>z=x.*exp(-x.^2-y.^2); >>[px,py]=gradient(z,xa,ya); %画出函数的方向导数 >>contour(x,y,z),hold on,quiver(x,y,px,py),hold off 3.梯形积分法 指令: z=trapz (x, y) x 是表示积分区间的离散化向量; y 也是与 x 同 维数的向量,表示被积函数;z 返回积分近似值 实验原理:先将积分区间分解为几个小区间,用每个小区间上梯形 面积之和作为积分近似值 例如:求积分
2 2 2 2 xe(x +y ) dxdy 0 −2

������ 1 1 (ysint 0 0 −1
+ zcost) dtdydz
建立 M 文件,内容如下: fun=inline('x.*exp(x.^2+y.^2)','x','y'); dblquad(fun,0,2,-2,2) fun=inline('y.*sin(t)+z.*cos(t)','t','y','z'); triplequad(fun,0,pi,0,1,-1,1) 实验结果: (保存之后,运行结果如下: ) ans=881.8304
������, ������ ������������求解
������ ������−������ ������ ( −������ − ������−������ ������
������ ������ +������ ������

数值分析matlab实验报告

数值分析matlab实验报告

数值分析matlab实验报告数值分析 Matlab 实验报告一、实验目的数值分析是研究各种数学问题数值解法的学科,Matlab 则是一款功能强大的科学计算软件。

本次实验旨在通过使用 Matlab 解决一系列数值分析问题,加深对数值分析方法的理解和应用能力,掌握数值计算中的误差分析、数值逼近、数值积分与数值微分等基本概念和方法,并培养运用计算机解决实际数学问题的能力。

二、实验内容(一)误差分析在数值计算中,误差是不可避免的。

通过对给定函数进行计算,分析截断误差和舍入误差的影响。

例如,计算函数$f(x) =\sin(x)$在$x = 05$ 附近的值,比较不同精度下的结果差异。

(二)数值逼近1、多项式插值使用拉格朗日插值法和牛顿插值法对给定的数据点进行插值,得到拟合多项式,并分析其误差。

2、曲线拟合采用最小二乘法对给定的数据进行线性和非线性曲线拟合,如多项式曲线拟合和指数曲线拟合。

(三)数值积分1、牛顿柯特斯公式实现梯形公式、辛普森公式和柯特斯公式,计算给定函数在特定区间上的积分值,并分析误差。

2、高斯求积公式使用高斯勒让德求积公式计算积分,比较其精度与牛顿柯特斯公式的差异。

(四)数值微分利用差商公式计算函数的数值导数,分析步长对结果的影响,探讨如何选择合适的步长以提高精度。

三、实验步骤(一)误差分析1、定义函数`compute_sin_error` 来计算不同精度下的正弦函数值和误差。

```matlabfunction value, error = compute_sin_error(x, precision)true_value = sin(x);computed_value = vpa(sin(x), precision);error = abs(true_value computed_value);end```2、在主程序中调用该函数,分别设置不同的精度进行计算和分析。

(二)数值逼近1、拉格朗日插值法```matlabfunction L = lagrange_interpolation(x, y, xi)n = length(x);L = 0;for i = 1:nli = 1;for j = 1:nif j ~= ili = li (xi x(j))/(x(i) x(j));endendL = L + y(i) li;endend```2、牛顿插值法```matlabfunction N = newton_interpolation(x, y, xi)n = length(x);%计算差商表D = zeros(n, n);D(:, 1) = y';for j = 2:nfor i = j:nD(i, j) =(D(i, j 1) D(i 1, j 1))/(x(i) x(i j + 1));endend%计算插值结果N = D(1, 1);term = 1;for i = 2:nterm = term (xi x(i 1));N = N + D(i, i) term;endend```3、曲线拟合```matlab%线性最小二乘拟合p = polyfit(x, y, 1);y_fit_linear = polyval(p, x);%多项式曲线拟合p = polyfit(x, y, n);% n 为多项式的次数y_fit_poly = polyval(p, x);%指数曲线拟合p = fit(x, y, 'exp1');y_fit_exp = p(x);```(三)数值积分1、梯形公式```matlabfunction T = trapezoidal_rule(f, a, b, n)h =(b a) / n;x = a:h:b;y = f(x);T = h ((y(1) + y(end))/ 2 + sum(y(2:end 1)));end```2、辛普森公式```matlabfunction S = simpson_rule(f, a, b, n)if mod(n, 2) ~= 0error('n 必须为偶数');endh =(b a) / n;x = a:h:b;y = f(x);S = h / 3 (y(1) + 4 sum(y(2:2:end 1))+ 2 sum(y(3:2:end 2))+ y(end));end```3、柯特斯公式```matlabfunction C = cotes_rule(f, a, b, n)h =(b a) / n;x = a:h:b;y = f(x);w = 7, 32, 12, 32, 7 / 90;C = h sum(w y);end```4、高斯勒让德求积公式```matlabfunction G = gauss_legendre_integration(f, a, b)x, w = gauss_legendre(5);%选择适当的节点数t =(b a) / 2 x +(a + b) / 2;G =(b a) / 2 sum(w f(t));end```(四)数值微分```matlabfunction dydx = numerical_derivative(f, x, h)dydx =(f(x + h) f(x h))/(2 h);end```四、实验结果与分析(一)误差分析通过不同精度的计算,发现随着精度的提高,误差逐渐减小,但计算时间也相应增加。

matlab数值计算 实验报告

matlab数值计算 实验报告

matlab数值计算实验报告Matlab数值计算实验报告引言:Matlab是一种强大的数值计算软件,广泛应用于科学和工程领域。

本实验旨在通过实际案例,展示Matlab在数值计算中的应用能力。

本报告将从三个方面进行讨论:数值积分、线性方程组求解和最优化问题。

一、数值积分:数值积分是数学中常见的问题,Matlab提供了多种函数和方法来解决这类问题。

我们以求解定积分为例进行讨论。

假设我们要求解函数f(x) = x^2在区间[0, 1]上的定积分。

我们可以使用Matlab中的quad函数来进行计算,代码如下:```matlabf = @(x) x.^2;integral = quad(f, 0, 1);disp(integral);```运行以上代码,我们可以得到定积分的近似值为0.3333。

通过调整积分方法和精度参数,我们可以得到更精确的结果。

二、线性方程组求解:线性方程组求解是数值计算中的重要问题,Matlab提供了多种函数和方法来解决线性方程组。

我们以一个简单的线性方程组为例进行讨论。

假设我们要求解以下线性方程组:```2x + y = 5x - y = 1```我们可以使用Matlab中的linsolve函数来求解,代码如下:```matlabA = [2 1; 1 -1];B = [5; 1];X = linsolve(A, B);disp(X);```运行以上代码,我们可以得到方程组的解为x = 2,y = 3。

通过调整方程组的系数矩阵和右侧向量,我们可以求解更复杂的线性方程组。

三、最优化问题:最优化问题在科学和工程领域中广泛存在,Matlab提供了多种函数和方法来解决这类问题。

我们以求解无约束最优化问题为例进行讨论。

假设我们要求解函数f(x) = x^2的最小值。

我们可以使用Matlab中的fminunc函数来进行计算,代码如下:```matlabf = @(x) x.^2;x0 = 1; % 初始点options = optimoptions('fminunc', 'Display', 'iter');[x, fval] = fminunc(f, x0, options);disp(x);disp(fval);```运行以上代码,我们可以得到最小值的近似解为x = 0,f(x) = 0。

数值计算方法实验报告

数值计算方法实验报告

数值计算方法实验报告实验目的:本次实验的目的是通过对数值计算方法的实践操作,加深对该方法的理解和掌握。

具体来说,本次实验旨在通过使用 MATLAB 软件对一些常见的数值计算问题进行求解,从而掌握和熟练运用一些数值计算方法,如插值、数值微积分、常微分方程数值解等。

实验过程:1.插值(1) Lagrange 插值法(2) Newton 插值法2.数值微积分(1) 梯形公式(2) Simpson 公式3.常微分方程数值解(1) 古典四步 Runge-Kutta 法(2) 改进四步 Runge-Kutta 法实验结果:本次实验中,我们使用 MATLAB 软件对以上数值计算问题进行了求解,成功得到了相应的数值解,并且通过分析和比较不同的数值计算方法的结果,得出了以下结论:1.在插值问题中,Lagrange 插值法和 Newton 插值法的结果相对较为接近,但是 Newton 插值法的计算速度更快。

2.在数值微积分问题中,梯形公式的结果较为精确,但是 Simpson 公式的精度更高。

3.在常微分方程数值解问题中,古典四步 Runge-Kutta 法和改进四步 Runge-Kutta 法均能得到较为准确的结果,但是改进四步Runge-Kutta 法的精度更高,尤其对于复杂的常微分方程求解有更好的效果。

实验结论:本次实验通过对数值计算方法的实践操作,深入理解了该方法的原理和运用,掌握了一些重要的数值计算方法,如插值、数值微积分、常微分方程数值解等,并且通过实验结果的分析比较,得出了相应的结论。

这些知识和技能对于我们在科研和工程实践中的数值计算问题具有非常重要的意义,具有广泛的应用前景。

matlab数值计算实验报告

matlab数值计算实验报告

matlab数值计算实验报告Matlab数值计算实验报告一、实验目的本次实验的目的是通过使用Matlab软件进行数值计算,掌握Matlab的基本操作和数值计算方法,了解数值计算的基本原理和方法,提高数学建模和计算能力。

二、实验内容本次实验主要包括以下内容:1. Matlab基本操作:包括Matlab软件的安装、启动、界面介绍、基本命令和语法等。

2. 数值计算方法:包括数值积分、数值微分、线性方程组的求解、非线性方程的求解、插值和拟合等。

3. 数学建模:通过实际问题的建模,运用Matlab进行数值计算,得到问题的解答。

三、实验步骤1. Matlab基本操作(1)安装Matlab软件:根据官方网站提供的下载链接,下载并安装Matlab软件。

(2)启动Matlab软件:双击Matlab图标,启动Matlab软件。

(3)界面介绍:Matlab软件界面分为命令窗口、编辑器窗口、工作区窗口、命令历史窗口、变量编辑器窗口等。

(4)基本命令和语法:Matlab软件的基本命令和语法包括数学运算、矩阵运算、逻辑运算、控制语句等。

2. 数值计算方法(1)数值积分:使用Matlab中的quad函数进行数值积分,求解定积分。

(2)数值微分:使用Matlab中的diff函数进行数值微分,求解函数的导数。

(3)线性方程组的求解:使用Matlab中的inv函数和\运算符进行线性方程组的求解。

(4)非线性方程的求解:使用Matlab中的fsolve函数进行非线性方程的求解。

(5)插值和拟合:使用Matlab中的interp1函数进行插值和拟合。

3. 数学建模(1)实际问题的建模:选择一个实际问题,将其转化为数学模型。

(2)运用Matlab进行数值计算:使用Matlab进行数值计算,得到问题的解答。

四、实验结果通过本次实验,我掌握了Matlab的基本操作和数值计算方法,了解了数值计算的基本原理和方法,提高了数学建模和计算能力。

在实际问题的建模和运用Matlab进行数值计算的过程中,我深刻体会到了数学建模和计算的重要性,也发现了Matlab在数学建模和计算中的重要作用。

MATLAB_实验04 多元函数微积分

MATLAB_实验04 多元函数微积分

实验04 多元函数微积分一实验目的 (2)二实验内容 (2)三实验准备 (2)四实验方法与步骤 (3)五练习与思考 (7)一 实验目的1 了解多元函数、多元函数积分的基本概念,多元函数的极值及其求法;2 理解多元函数的偏导数、全微分等概念,掌握积分在计算空间立体体积或表面积等问题中的应用;3 掌握MATLAB 软件有关求导数的命令;4 掌握MATLAB 软件有关的命令.二 实验内容1 多元函数的偏导数,极值;2 计算多元函数数值积分;3计算曲线积分,计算曲面积分.三 实验准备1 建立符号变量命令为sym 和syms ,调用格式为: x=sym('x') 建立符号变量x ;syms x y z 建立多个符号变量x ,y ,z ; 2 matlab 求导命令diff 的调用格式: diff(函数(,)f x y ,变量名x)求(,)f x y 对x 的偏导数f x∂∂; diff(函数(,)f x y ,变量名x,n) 求(,)f x y 对x 的n 阶偏导数n n fx∂∂;3 matlab 求雅可比矩阵命令jacobian 的调用格式: jacobian([f;g;h],[],,x y z )给出矩阵f f f x y zg g g x y zh h h xyz ⎛⎫∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂⎝⎭4 MATLAB 中主要用int 进行符号积分,常用格式如下: ① int(s)表示求符号表达式s 的不定积分② int(s,x)表示求符号表达式s 关于变量x 的不定积分③ int(s,a,b)表示求符号表达式s 的定积分,a ,b 分别为积分的上、下限④ int(s,x,a,b)表示求符号表达式s 关于变量x 的定积分,a,b 分别为积分的上、下限5 MATLAB 中主要用trapz,quad,quad8等进行数值积分,常用格式如下:① trapz(x,y)采用梯形积分法,其中x 是积分区间的离散化向量,y 是与x 同维数的向量、用来表示被积函数.② quad8('fun',a,b,tol)采用变步长数值积分,其中fun 为被积函数的M 函数名,a,b 分别为积分上、下限,tol 为精度,缺省值为1e-3.③ dblquad('fun',a,b,c,d)表示求矩形区域的二重数值积分,其中fun 为被积函数的M 函数名,a ,b 分别为x 的上、下限,c ,d 分别为y 的上、下限.使用help int ,help trapz ,help quad 等查阅有关这些命令的详细信息.四 实验方法与步骤例1 定义二元函数23z x y =+.解 (1)方法一:syms x y;z=x.^2+y.^3; (2)方法二:编写M 文件fun7.m 定义函数function z=fun7(x,y) z=x.^2+y.^3;(3)方法三:利用inline 函数:f=inline('x.^2+y.^3'). 注:不同定义方式,调用格式不完全相同. 例2 绘出函数23z x y =+的图形.解 程序为:x=linspace(-10,10,40);y=x;[X,Y]=meshgrid(x, y); Z=fun7(X,Y);surf(X,Y,Z),shading interp 结果如图2-10所示.图2-10例3 设222u x y yz =++,求u y∂∂. 解 输入命令:syms x y z;diff(x^2+2*y^2+y*z,y),得ans=4*y+z.利用jacobian 命令:jacobian(x^2+2*y^2+y*z,[x y]),得ans=[2*x,4*y+z],即矩阵,u u x y ⎛⎫∂∂ ⎪∂∂⎝⎭例4 设642232z x y x y =-+,求22222,,z z zx y x y∂∂∂∂∂∂∂.解 求22zx∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,x,2)结果为: ans=30*x^4+4*y^2 求22zy ∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,y,2) 结果为:ans=-36*y^2+4*x^2求2z x y∂∂∂的程序为:syms x y;diff(diff(x^6-3*y^4+2*x^2*y^2,x),y) 结果:为ans=8*x*y.注:diff(x^6-3*y^4+2*x^2*y^2,x,y)是求zy∂∂,而不是求2z x y ∂∂∂例5 设由,x y 所确定的z 的隐函数为2225xy y z ++=,求,z zx y∂∂∂∂.解 令()22,,25F x y z xy y z =++- ''/x z zF F x∂=-∂ 输入命令:syms x y z;a=jacobian(x*y+y^2+2*z^2-5,[x,y,z]) 可得矩阵()''',,x y z F F F =[y,x+2*y,4*z] 利用公式''''/,/x z y z z zF F F F x y∂∂=-=-∂∂可得 求zx ∂∂的程序为:-a(1)/a(3),结果为:-1/4*y/z ; 求zy∂∂的程序为:-a(2)/a(3),结果为:1/4*(-x-2*y)/z. 例6 求(1)()222122()312(12)f x x x x =-+-在点()2,2-临近的极小值.(2)222()()(1)f x y x x =-+-在55x -≤≤内的极值.解 求多元函数(,)z f x y =的极值点X 和极小值minf ,可用如下方法 方法一:X=fminsearch('f',x0),用的是Nelder-Mead 单纯形搜索法求解; 方法二:X=fminunc('f',x0),用的是BFGS 拟牛顿迭代法求解. 其中[](1),(2),(3),,()X x x x x n =,x0是初始点. 若求极大值点,用(-1)乘函数,再求极小值点.(1)程序如下:f='(x(1)^2-3*x(2))^2+12*(1-2*x(2))^2'; x=fminsearch(f,[-2,2]),minf=eval(f) 结果为:x =-1.2247 0.5000, minf =2.1879e-009结果说明在1 1.2247x =-,20.5x =时,函数的极小值为0. (2)先作函数的图形,程序如下:[x,y]=meshgrid(-5:0.5:5); f=(y-x.^2).^2+(1-x).^2; surf(x,y,f);结果如图2-11所示.以下程序为求函数的极小值:图2-11f='(x(2)-x(1).^2).^2+(1-x(1)).^2';x=fminsearch(f,[0.2,0.3]),minf=eval(f),shading interp结果为:x=[1.0000,1.0000],minf=4.1546e-010 说明在1,1x y ==时,函数的极小值为0. 例8 计算积分221(1)d d x y xy x y +≤+⎰⎰.解 先将被积函数转化为二次积分:)22111(1)d d 1d d x y x y x y x y y x -+≤⎛⎫++=++ ⎪⎝⎭⎰⎰⎰, 程序为:clear; syms x y;iy=int(1+x*y,y,-sqrt(1-x^2),sqrt(1-x^2));int(iy,x,-1,1) 结果为:ans=π.例9 求对弧长的曲线积分:(1)计算2d ,:2cos ,3sin Ly s L x t y t ==⎰。

【MATLAB】实验五:数值微积分与方程数值求解

【MATLAB】实验五:数值微积分与方程数值求解

实验五 数值微积分与方程数值求解一、实验目的1. 掌握求数值导数和数值积分的方法。

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

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

二、实验内容要求:命令手工 ( )输入1. 求函数在指定点的数值导数。

232()123,1,2,3026x x x f x x x x x==2. 用数值方法求定积分。

(1) 210I π=⎰的近似值。

(2) 2220ln(1)1x I dt xπ+=+⎰3. 分别用三种不同的数值方法解线性方程组。

6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩4. 求非齐次线性方程组的通解。

1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩解:先建立M 函数文件,然后命令窗口中写命令。

121/119/112/115/111/1110/11100010X k k --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,其中12,k k 为任意常数。

5. 求代数方程的数值解。

(1) 3x +sin x -e x =0在x 0=1.5附近的根。

(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。

23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩ans =1289/6826. 求函数在指定区间的极值。

(1) 3cos log ()xx x x x f x e ++=在(0,1)内的最小值。

(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。

(以下选作题,是微分方程的数值解)7. 求微分方程的数值解。

x 在[1.0e-9,20]2250(0)0'(0)0xd y dy y dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩解:M 文件:运行结果:8. 求微分方程组的数值解,并绘制解的曲线。

matlab数值分析实验报告

matlab数值分析实验报告

matlab数值分析实验报告Matlab数值分析实验报告引言数值分析是一门研究利用计算机进行数值计算和模拟的学科,它在科学计算、工程技术和金融等领域有着广泛的应用。

本次实验报告将介绍在Matlab环境下进行的数值分析实验,包括数值微分、数值积分和线性方程组求解等内容。

一、数值微分数值微分是通过数值方法计算函数的导数,常用的数值微分方法有前向差分、后向差分和中心差分。

在Matlab中,可以使用diff函数来计算函数的导数。

例如,对于函数f(x)=x^2,在Matlab中可以使用如下代码进行数值微分的计算:```matlabsyms x;f = x^2;df = diff(f, x);```二、数值积分数值积分是通过数值方法计算函数的定积分,常用的数值积分方法有梯形法则、辛普森法则和龙贝格积分法。

在Matlab中,可以使用trapz、quad和integral等函数来进行数值积分的计算。

例如,对于函数f(x)=sin(x),可以使用如下代码进行数值积分的计算:```matlabx = linspace(0, pi, 100);y = sin(x);integral_value = trapz(x, y);```三、线性方程组求解线性方程组求解是数值分析中的重要问题,常用的求解方法有高斯消元法和LU 分解法。

在Matlab中,可以使用\操作符来求解线性方程组。

例如,对于线性方程组Ax=b,可以使用如下代码进行求解:```matlabA = [1, 2; 3, 4];b = [5; 6];x = A\b;```四、实验结果与分析在本次实验中,我们分别使用Matlab进行了数值微分、数值积分和线性方程组求解的计算。

通过实验结果可以发现,Matlab提供了丰富的数值计算函数和工具,能够方便地进行数值分析的计算和求解。

数值微分的计算结果与解析解相比较,可以发现数值微分的误差随着步长的减小而减小,但是当步长过小时,数值微分的误差会受到舍入误差的影响。

matlab数值计算实验报告

matlab数值计算实验报告

matlab数值计算实验报告数值计算实验报告实验目的本实验的目的是通过MATLAB编程,实现数值计算的多种方法,体会数值计算的方法,并且对数值计算的应用有更加深入的了解,对数值计算有更加系统的认识。

实验内容1. 实验中以MATLAB编程求解等折线上的单点,给出相应的曲线图,并用相应的代码计算出可变参数系数n,写出实验步骤和实验结果。

步骤:(1)设计MATLAB程序,即根据题中给出的函数,确定参数n、x、y的取值范围;(2)在MATLAB中求解单点,并绘制出曲线图;(3)得出可变参数系数n的值。

实验结果:可变参数系数n的值为:n=2.3125。

2. 通过MATLAB编程,实现有Bezier曲线的绘制,给出相应的曲线图,并用相应的代码计算出可变参数系数n,写出实验步骤和实验结果。

步骤:(1)设计MATLAB程序,即根据题中给出的函数,确定参数n、x、y的取值范围;(2)在MATLAB中求解单点,并绘制出Bezier 曲线图;(3)得出可变参数系数n的值。

实验结果:可变参数系数n的值为:n=3.5。

3. 利用MATLAB编程,实现有牛顿迭代法求解非线性方程组,给出相应的收敛图,并用相应的代码计算出可变参数系数A、B和X,写出实验步骤和实验结果。

步骤:(1)根据实验题目给出的非线性方程组,确定A、B、X 的取值范围;(2)用MATLAB编程实现牛顿迭代法求解,在迭代收敛的过程中对收敛的每个步骤的X值画出收敛图;(3)得出可变参数系数A、B和X的值。

实验结果:可变参数系数A的值为:A=3.7;可变参数系数B的值为:B=5.5;可变参数系数X的值为:X=2.0。

实验结论通过本次实验,我们学习了利用MATLAB编程实现数值计算的多种方法,包括等折线上求解单点,Bezier曲线绘制,牛顿迭代法求解非线性方程组等等。

并且我们对数值计算的应用有了更加深入的了解,对数值计算有了更加系统的认识。

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

基于MATLAB 的微积分数值计算
一.请编程计算以下极限
1
、0ln(lim tan x x x x →+
【程序代码】
syms x;
y=log(x+sqrt(1+x^2))/(x+tan(x));
limit(y,x,0)
ans =
1/2
2、1
lim (3)x x x e x →∞⎡
⎤+-⎢⎥⎣⎦
【程序代码】
syms x;
y=(x+3)*exp(1/x)-x;
limit(y,x,inf)
ans =
4
3、0lim x x x +→
【程序代码】
syms x;
y=x^x;
limit(y,x,0,'right')
ans =
1
4、22200
sin()
lim x y x y x y →→+
【程序代码】
syms x y;
f=sin(x^2*y)/(x^2+y^2);
limit(limit(f,x,0),y,0)
ans =
二.求下列函数的导数
1、求3
x y = 【程序代码】
syms x;
y=(exp(x^3)-1)/(1-cos(sqrt(x-sin(x))));
yd=diff(y,x)
yd =
3*x^2*exp(x^3)/(1-cos((x-sin(x))^(1/2)))-1/2*(exp(x^3)-1)/(1-cos((x-sin(x))^(1/2)))^2*sin((x-sin(x))^(1/2))/(x-sin(x))^(1/2)*(1-cos(x)) 2、求(1)sin
x a b y x x x
=+的一阶导数、二阶导数 【程序代码】
syms x a b;
y=x*(1+a/x)^x*sin(b/x);
y1=diff(y,x)
y2=diff(y,x,2)
y1 =
(1+a/x)^x*sin(b/x)+x*(1+a/x)^x*(log(1+a/x)-
1/x*a/(1+a/x))*sin(b/x)-1/x*(1+a/x)^x*cos(b/x)*b
y2 =
2*(1+a/x)^x*(log(1+a/x)-
1/x*a/(1+a/x))*sin(b/x)+x*(1+a/x)^x*(log(1+a/x)-
1/x*a/(1+a/x))^2*sin(b/x)-1/x^2*(1+a/x)^x*a^2/(1+a/x)^2*sin(b/x)-2/x*(1+a/x)^x*(log(1+a/x)-1/x*a/(1+a/x))*cos(b/x)*b-
1/x^3*(1+a/x)^x*sin(b/x)*b^2 3、求arctan x z y
=的二阶偏导数 【程序代码】
syms x y;
z=atan(x/y);
zx=diff(z,x); %z对x求偏导
zy=diff(z,y) ; %z对x求偏导
zxx=diff(zx,x) %zx对x求偏导
zxy=diff(zx,y) %zx对y求偏导
zyx=diff(zy,x) %zy对x求偏导
zyy=diff(zy,y) %zy对y求偏导
zxx =
-2/y^3/(1+x^2/y^2)^2*x
zxy =
-1/y^2/(1+x^2/y^2)+2/y^4/(1+x^2/y^2)^2*x^2
zyx =
-1/y^2/(1+x^2/y^2)+2/y^4/(1+x^2/y^2)^2*x^2
zyy =
2*x/y^3/(1+x^2/y^2)-2*x^3/y^5/(1+x^2/y^2)^2
三.MATLAB 找一个自己曾经解决不了的极限或导数问题用编程求解.
例如,求
1 lim sin x x
【程序代码】
syms x;
y=sin(1/x);
limit(y,x,inf)
ans =
四.从网络或参考资料上收集并整理1~2个与所学知识相关的MATLAB程序并运行其结果(添加必要的注释)
【实例】透视效果演示
[X0,Y0,Z0]=s p h e r e(30);%产生单位球面的三维坐标
X=2*X0;Y=2*Y0;Z=2*Z0;%产生半径为2的球面坐标
s u r f(X0,Y0,Z0);%画单位球面
s h a d i n g i n t e r p%对球的着色进行浓淡细化处理
h o l d o n;%绘图保持
m e s h(X,Y,Z)%绘大球
c o l o r m a p(h o t);%定义色表
h o l d o f f%取消绘图保持
h i d d e n o f f%产生透视效果
a x i s e q u a l,a x i s o f f%坐标等轴并隐藏。

相关文档
最新文档