求助,用matlab积分求面积问题,快要上交,求速度~~~~

作者&投稿:村疤 (若有异议请与网页底部的电邮联系)
求助 matlab拟合的曲线如何求积分面积?~

S=(L2的曲线积分-L1的曲线积分)
用三次样条插值和复化辛普森公式计算:
例如
x0=[0.9 1.3 1.7 2.1 2.6 3 3.2 3.3 3.5 4.0 4.6 5.0 5.5 6.0 6.3 6.6 7.0 7.3 7.8 8.1 8.4 8.8 9.3 9.6 10.0 10.2 10.6 10.8 11.1 11.5 11.7 12.0 12.5 12.9 13.6 14.0 14.5 15.1 15.6 16.1 16.7 17.0 17.5 17.6 17.8];

y1=[6.5 6.0 5.6 5.6 5.0 4.5 4.2 4.1 4.1 3.9 3.6 3.0 3.4 3.5 3.5 3.5 3.4 3.1 3.2 3.4 3.3 3.3 3.8 3.2 2.8 2.5 2.2 2.4 2.6 2.0 2.6 2.9 2.9 3.4 1.5 1.1 1.0 0.7 1.9 1.8 2.2 2.6 2.6 2.7 3.0]; %已知节点(x0,y1)

y2=[6.5 7.3 7.2 7.3 7.7 7.3 7.6 9.9 10.1 10.5 10.2 9.8 9.7 8.8 8.6 8.2 7.7 7.5 7.7 8.2 8.9 8.2 9.7 9.7 9.7 10.0 10.1 10.4 10.3 10.3 10.5 10.5 10.4 10.2 9.6 9.7 8.9 7.9 7.6 5.9 5.8 3.4 3.3 3.2 3.0]; %已知节点(x0,y2)

h=0.1; %产生插值点的步长

x=0.9:h:17.8; %产生插值点x

y01=interp1(x0,y1,x); %计算L1的分段线性插值

y02=interp1(x0,y2,x); %计算L2的分段线性插值

plot(x,y01,'k',x,y02,'r') %分段线性插值作图

z1=trapz(y01)*h %用梯形公式计算L1 的积分
>> y021=[y02(2:2:k-1)];

>> s021=sum(y021);

>> y022=[y02(3:2:k-1)];

>> s022=sum(y022);

>> z2=(y02(1)+y02(k)+4*s021+2*s022)*h/3 %用辛普森公式计算L2的积分
S=(z2-z1) %代入面积推导公式

>> x0=0:1:24;
y0=[0 0 1.01 1.18 0 1.39 1.97 1.33 2.08 1.22 1.09 0 1.01 0 0.9 1.18 1.13 1.05 1.58 0.94 0 0 1.18 1.01 0.9];
h=0.1; %产生插值点的步长
x=0:h:24; %产生插值点x
y01=interp1(x0,y0,x); %计算L1的分段线性插值
plot(x,y01,'k') %分段线性插值作图
z1=trapz(y01)*h %用梯形公式计算L1 的积分

z1 =

21.7000

样条插值
x0=0:1:24;
y0=[0 0 1.01 1.18 0 1.39 1.97 1.33 2.08 1.22 1.09 0 1.01 0 0.9 1.18 1.13 1.05 1.58 0.94 0 0 1.18 1.01 0.9];
h=0.1; %产生插值点的步长
x=0:h:24; %产生插值点x
y01=spline(x0,y0,x); %计算L1样条插值
plot(x,y01,'k') %分段线性插值作图
z1=trapz(y01)*h %用梯形公式计算L1 的积分

z1 =

21.5442

在matlab中输入 doc trapz 就知道了

S=(L2的曲线积分-L1的曲线积分)
用三次样条插值和复化辛普森公式计算:
例如
x0=[0.9 1.3 1.7 2.1 2.6 3 3.2 3.3 3.5 4.0 4.6 5.0 5.5 6.0 6.3 6.6 7.0 7.3 7.8 8.1 8.4 8.8 9.3 9.6 10.0 10.2 10.6 10.8 11.1 11.5 11.7 12.0 12.5 12.9 13.6 14.0 14.5 15.1 15.6 16.1 16.7 17.0 17.5 17.6 17.8];

y1=[6.5 6.0 5.6 5.6 5.0 4.5 4.2 4.1 4.1 3.9 3.6 3.0 3.4 3.5 3.5 3.5 3.4 3.1 3.2 3.4 3.3 3.3 3.8 3.2 2.8 2.5 2.2 2.4 2.6 2.0 2.6 2.9 2.9 3.4 1.5 1.1 1.0 0.7 1.9 1.8 2.2 2.6 2.6 2.7 3.0]; %已知节点(x0,y1)

y2=[6.5 7.3 7.2 7.3 7.7 7.3 7.6 9.9 10.1 10.5 10.2 9.8 9.7 8.8 8.6 8.2 7.7 7.5 7.7 8.2 8.9 8.2 9.7 9.7 9.7 10.0 10.1 10.4 10.3 10.3 10.5 10.5 10.4 10.2 9.6 9.7 8.9 7.9 7.6 5.9 5.8 3.4 3.3 3.2 3.0]; %已知节点(x0,y2)

h=0.1; %产生插值点的步长

x=0.9:h:17.8; %产生插值点x

y01=interp1(x0,y1,x); %计算L1的分段线性插值

y02=interp1(x0,y2,x); %计算L2的分段线性插值

plot(x,y01,'k',x,y02,'r') %分段线性插值作图

z1=trapz(y01)*h %用梯形公式计算L1 的积分
>> y021=[y02(2:2:k-1)];

>> s021=sum(y021);

>> y022=[y02(3:2:k-1)];

>> s022=sum(y022);

>> z2=(y02(1)+y02(k)+4*s021+2*s022)*h/3 %用辛普森公式计算L2的积分
S=(z2-z1) %代入面积推导公式

>> x0=0:1:24;
y0=[0 0 1.01 1.18 0 1.39 1.97 1.33 2.08 1.22 1.09 0 1.01 0 0.9 1.18 1.13 1.05 1.58 0.94 0 0 1.18 1.01 0.9];
h=0.1; %产生插值点的步长
x=0:h:24; %产生插值点x
y01=interp1(x0,y0,x); %计算L1的分段线性插值
plot(x,y01,'k') %分段线性插值作图
z1=trapz(y01)*h %用梯形公式计算L1 的积分

z1 =

21.7000

样条插值
x0=0:1:24;
y0=[0 0 1.01 1.18 0 1.39 1.97 1.33 2.08 1.22 1.09 0 1.01 0 0.9 1.18 1.13 1.05 1.58 0.94 0 0 1.18 1.01 0.9];
h=0.1; %产生插值点的步长
x=0:h:24; %产生插值点x
y01=spline(x0,y0,x); %计算L1样条插值
plot(x,y01,'k') %分段线性插值作图
z1=trapz(y01)*h %用梯形公式计算L1 的积分

z1 =

21.5442


function s=MySimp(a,b,k)
h=(b-a)/k;
x=[a:h:b];
n=length(x);
ys=f(x(2));
yf=f(x(n));
ymid=0;
yin=0;
for i=1:n-1
ymid=ymid+4*f((x(i)+x(i+1))/2);
end
for i=2:n-1
yin=yin+2*f(x(i));
end
s=(h/6)*(ys+ymid+yin+yf);

function y=f(x)
y=(1/x*0.891*sqrt(2*pi))*exp((-(log(x)-7.59)^2)/2*0.7938);
a=0;
n=8;
b=2000;
ssimp=MySimp(a,b,n)

ssimp =

3.2412

第二个函数第一行:
logx语法错误吧


Matlab教程(1)——多项式拟合
三、多项式拟合函数编写 创建一个名为polydata的函数,接受包含测试温度和性能数据的矩阵作为输入,利用Matlab的polyfit和polyval函数进行拟合。理解这些函数的用法,如`y = polyval(polyfit(data(:,1), data(:,2), r), x)`,有助于我们编写高效和可调试的代码。四、实际操作示例 在脚本中,首先输入...

MATLAB是干什么用的软件?
MATLAB用更直观的,符合人们思维习惯的代码,代替了C和 FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。1)。语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。

什么是MATLAB,MATLAB有什么用处?
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,...

在MATLAB里,先建立自己的工作目录,再将自己的工作目录设置到搜索路径...
前几天有回过类似的问题。你如果要将自己的工作目录设置到MATLAB搜索路径的话,借助addpath命令。比方说,你要将c:\\mydoc加到搜索路径的话。用下面的函数:addpath c:\\matlab\\work 查工作目录,用path 查自己的工作目录,用userpath 查询目录,我听得不是很懂,你试一下which help 要看inv函数据的...

MATLAB\/ Simulink的基本使用方法有哪些呢?
示波器不仅能实时显示信号,还能将数据导出以供后续分析。在示波器窗口中,点击“File” -> “Save As” 可以将数据保存为 MAT 文件或其他格式。这样你可以在 MATLAB 工作区中进一步处理这些数据。2. 后处理 在 MATLAB 中加载导出的数据文件,然后使用 MATLAB 的各种函数进行后处理。例如,你可以使用 ...

matlab常用函数
22. 定义函数时,推荐使用点运算以提高代码效率。23. fplot(fun,lims) \/\/绘制函数图形,限制x轴区间 24. fimplicit 隐函数绘图 这些函数涵盖了从数学运算、绘图、图形界面操作到函数定义等基本功能,对于初学者和专业用户都是不可或缺的工具。掌握并熟练运用这些函数,将有助于提高MATLAB编程的效率和...

matlab是什么软件
Matlab是一款数值计算软件。Matlab是一个高性能的数值计算软件,广泛应用于各类数值分析和数据处理工作。以下是详细的解释:一、软件概述 Matlab是一款由MathWorks公司开发的数学计算软件。它以矩阵运算为基础,提供了大量的内置函数和工具,用于数据分析、信号处理、图像处理、算法开发等多个领域。由于其强大的...

如何利用matlab观察阶跃响应曲线和测量一阶系统的时间常数??_百度知...
2. 使用MATLAB的Control System Toolbox来创建系统传递函数对象:可以使用tf函数来创建传递函数对象,例如:sys = tf(K, [T 1])。3. 绘制阶跃响应曲线:使用step函数可以绘制系统的阶跃响应曲线,例如:step(sys)。4. 测量时间常数:观察系统的阶跃响应曲线,找到曲线上时间为T的点,然后测量该点的...

matlab怎么用
2013-01-25 matlab 中& | 怎么用 24 2010-11-26 function在MATLAB中怎么用 2644 2017-01-04 MATLAB里面关于.*是怎么用的 5 2009-10-08 怎么使用matlab绘图 151 2017-12-16 怎么用MATLAB? 2007-01-20 怎么用matlab画圆 246 更多类似问题 > 为...

MATLAB在电气信息类专业中的应用编辑推荐
通过学习MATLAB,学生可以快速掌握模块化的设计方法,避免在繁琐的程序语法学习中迷失方向。这种模块化的思维方式有助于提高学生解决问题的效率,使他们能够专注于问题的核心逻辑,而无需过多关注语言细节。在实际应用中,MATLAB的Simulink模块为系统建模与仿真提供了强大的支持。通过搭建动态系统的数学模型,学生...

安义县17687612808: 求助,用matlab积分求面积问题,快要上交,求速度~~~~ -
南鸿星乐: function s=MySimp(a,b,k)h=(b-a)/k;x=[a:h:b]; n=length(x); ys=f(x(2)); yf=f(x(n)); ymid=0; yin=0; for i=1:n-1 ymid=ymid+4*f((x(i)+x(i+1))...

安义县17687612808: 请大神帮我编写matlab程序,求图形面积,谢谢! -
南鸿星乐: (1)定积分求面积 >> syms x >> S1 = int(x^2,0,3)+int(12-x,3,12)S1 =99/2(2)随机实验求面积:你上面的代码是对的啊,结果也正确 >> clear; >> N = 1e7; >> x = unifrnd(0,12,[1,N]); >> y = unifrnd(0,9,[1,N]); >> pinshu = sum(y<=x.^2&x<=3) + sum(y<=12-x&x>=3); >> S2 = 12*9*pinshu/NS2 = 49.5122

安义县17687612808: 怎么用matlab求下图面积 -
南鸿星乐: 用梯形积分法求其面积.首先,从图形中取点xi,yi,列出x向量和y向量,即 x=[...]; y=[...]; 然后,用trapz( ) 函数求出面积 z=trapz(x,y) %面积

安义县17687612808: matlab 求积分=梯形面积 -
南鸿星乐: 当然没有了!把你的for 换成 s=sum(f(1:n)+f(2:n+1))*h/2 才是向量计算

安义县17687612808: matlab如何写求两条曲线围成的图形的面积的代码? -
南鸿星乐: 有一个函数polyarea可以算出多边形围得面积,s=polyarea(x,y)

安义县17687612808: matlab画曲线(3x+4y - 2)^2+(4x - 5y+7)^2=1并计算其所围区域面积用matlab计算,过程最好有讲解, -
南鸿星乐:[答案] >> syms x y >> ezplot((3*x+4*y-2)^2+(4*x-5*y+7)^2-1) >> axis([-0.8,-0.3,0.7,1.1]) %以上是绘图 %下面用积分求面积 >> y=solve('(3*x+4*y-2)^2+(4*x-5*y+7)^2-1=0','y') y = (8*x)/41 - (- 961*x^2 - 1116*x - 283)^(1/2)/41 + 43/41 (8*x)/41 + (- 961*x^2 - 1116*x - ...

安义县17687612808: 以Matlab函数积分问题,怎么解决 -
南鸿星乐: 用Matlab的函数可以求解积分问题,对于一般的积分问题,可以用int()函数,对于复杂的积分问题,可以用integral, quad, trapz等函数来解决.例如:>> syms x>> Q =int(1/(x^3-2*x-5),0,2); >> vpa(Q) ans =-0.46050153384673289099951059054732>> func =@(x) 1./(x.^3-2*x-5);>> Q = quad(func,0,2) Q = -0.4605

安义县17687612808: 在MATLAB中怎样求一个图形的面积
南鸿星乐: 楼主此问诧异,楼主的问题其实可以拆解成两个问题: 1:任意给定一个图形,怎样求出其面积 2:这种求面积的方法怎么用matlab编程实现 姑且不说第二项怎么解决,对于第一项,数学上就没有通用的方法.你想,求三角形和求四边形的面积...

安义县17687612808: MATLAB求解两正态分布曲线相交面积 -
南鸿星乐: 编程序求积分:s=0; for i=a:d:b-d s=s+d*f(i); end s 即为所求.

安义县17687612808: MATLAB求椭圆一部分面积 -
南鸿星乐: 如果是你画的图,那么只要对你作出图的曲线用数值积分就可以了,可用调出曲线的属性,得到data.如果是图片则要把图片导进MATLAB,再检测到曲线的数据,很简单的算法,然后再用数值积分

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网