求助 matlab 求两个函数围成的面积的积分程序?

求助 matlab 求两个函数围成的面积的积分程序?,第1张

先构造一个函数

function out=mypolynomial(x)

out=-0.0339*x.^2+1.7225*x-1.0157(这银散个函数是题锋派氏目中两个函羡歼数的差)

然后

a=fzero('mypolynomial',[0,10]);

得到a = 0.5967;

b=fzero('mypolynomial',[50,60]);

得到b = 50.2145;

最后

s=quad('mypolynomial',0.5967,50.2145);

得到

s = 690.1804;

简单的丛御定积分类似求y=2x与直线x=0,x=2,x轴围成的面积

对y=2x积分后得到y=x^2,在把临界点x=2和x=0带入相减绝码就得到了该图形的面积

积分求面积没有固定的公并郑哪式,要看情况,根据原函数积分后带入临界相减可以得到原函数图形与x轴和左右临界围成图形的面积

积分分为两种,数值积分,公式积分。

公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。

数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。

以【f(x)=x*sin(x) 从茄行1到2的积分】为例:

#include <math.h>

#include <stdio.h>

double integral(double(*fun)(double x),double a,double 或纳岁b,int,n){

   double s,h,y

   int i

   s=(fun(a)+fun(b))/2

   h=(b-a)/n /*积分步长*/

   for(i=1i<ni++)

   s=s+fun(a+i*h)

   y=s*h

   return y/*返回积分值*/

}

double f(double x){

    return(x*sinx)  /*修改此处可以改变被积函数*/

}

int main(){

   double y

   y=integral(f,1.0,2.0,150)/*修改此处可以衫睁改变积分上下限和步数,步长=(上限-下限)/步数*/

   printf("y=%f\n",y)

   return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12371862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存