精华内容
下载资源
问答
  • 二重函数求积分
    千次阅读
    2021-04-18 15:09:49

    MATLAB如何求二重积分

    在MATLAB软件中输入二重积分的代码即可求二重积分,具体操作请参照以下步骤,演示软件版本为MATLAB 2014版。

    1、将要使用MATLAB计算下图中的二重积分,首先在电脑上打开MATLAB软件。

    2、新建脚本(Ctrl+N),输入图中框住的代码内容。其中Q1=dblquad(f,0,2*pi,-pi,pi,1.0e-3)采用默认方法quad计算二重积分,绝对计算精度设为1.0e-3。plot3(x,y,ff,'r','LineWidth',3)是绘制被积分函数ff=x.*sin(y)-cos(x)+y-3的图像。

    3、保存和运行上述脚本,在命令行窗口(Command Window)得到如下结果:Q1 =-118.4351。也就是说,该二重数值积分的结果为-118.4351。

    4、同时得到被积分函数x.*sin(y)-cos(x)+y-3的图像。

    5、也可采用quadl法计算二重积分,在Q1命令后面再添加一行命令Q2=dblquad(f,0,2*pi,-pi,pi,1.0e-3,'quadl')即可。

    更多相关内容
  • 数值积分二重积分。数值积分的源码,计算速度快,还可以直接用
  • Tm =(conj(int(int(exp(- (4*x^2)/625 - (4*y^2)/625)*exp((pi*(x^2*(664082795627794742017137/73786976294838206464 + (5194312258281913*i)/562949953421312) + y^2*(664082795627794742017137/73786976294838206...

    Tm =(conj(int(int(exp(- (4*x^2)/625 - (4*y^2)/625)*exp((pi*(x^2*(664082795627794742017137/73786976294838206464 + (5194312258281913*i)/562949953421312) + y^2*(664082795627794742017137/73786976294838206464 + (5194312258281913*i)/562949953421312) - 16342662327802055493002582331375/144115188075855872 - (5502375*i)/1099511627776)*1881475027264087*i)/32344852523774902272000)*(10419165180031770614977117935177/41538374868278621028243970633760768 + (23214894868370817290627356963049*i)/332306998946228968225951765070086144), y, -(625/4 - x^2)^(1/2), (625/4 - x^2)^(1/2)), x, -25/2, 25/2))*int(int(exp(- (4*x^2)/625 - (4*y^2)/625)*exp((pi*(x^2*(664082795627794742017137/73786976294838206464 + (5194312258281913*i)/562949953421312) + y^2*(664082795627794742017137/73786976294838206464 + (5194312258281913*i)/562949953421312) - 16342662327802055493002582331375/144115188075855872 - (5502375*i)/1099511627776)*1881475027264087*i)/32344852523774902272000)*(10419165180031770614977117935177/41538374868278621028243970633760768 + (23214894868370817290627356963049*i)/332306998946228968225951765070086144), y, -(625/4 - x^2)^(1/2), (625/4 - x^2)^(1/2)), x, -25/2, 25/2))/(int(int((80701143655892331564348236081881*exp(pi*(x1^2 + y1^2)*(- 2511815281671110825154292999853740077875200/12329844431363340697327263119522890351132769 - (33109141861495839929069981609125478400*i)/12329844431363340697327263119522890351132769) - (8876998489817117*i)/1073741824)*exp(-(pi*(x1^2 + y1^2)*i)/4788)*exp(pi*(conj(x1)^2 + conj(y1)^2)*((33109141861495839929069981609125478400*i)/12329844431363340697327263119522890351132769 - 2511815281671110825154292999853740077875200/12329844431363340697327263119522890351132769) + (8876998489817117*i)/1073741824)*exp((pi*(conj(x1)^2 + conj(y1)^2)*i)/4788))/126765060022822940149670320537600, y1, -(25/16 - x1^2)^(1/2), (25/16 - x1^2)^(1/2)), x1, -5/4, 5/4)*int((1291218298494277376896623991639225*8^(1/2)*pi^(1/2)*erf((8^(1/2)*(625/4 - x^2)^(1/2))/25)*exp(-(4*conj(x)^2)/625))/(649037107316853453566312041152512*exp(x^2)^(4/625)), x, -25/2, 25/2))

    展开全文
  • 首先是对一元函数求积分,使用Scipy下的integrate函数: from scipy import integrate def g(x): return (1-x**2)**0.5 #用integrate下的quad函数可以同时积分结果和误差 res,err=integrate.quad(g,-1,1) #-1...
  • 二重积分的C语言实现

    千次阅读 2018-09-29 13:17:43
    想到求二重积分,我们可能第一下想到的是先对其中的一个变量进行积分,同时将另外一个变量看成常数,之后再对第二个变量进行积分,笔者高中的教材上就这这么写的。 但是对于计算机来说,实现不定积分是一件很困难的...

    想到求二重积分,我们可能第一下想到的是先对其中的一个变量进行积分,同时将另外一个变量看成常数,之后再对第二个变量进行积分,笔者高中的教材上就这这么写的。

    但是对于计算机来说,实现不定积分是一件很困难的事情,于是这条“人类的方法”在计算机上面就行不通了,但是别急,我们可别忘了积分最原始的定义——分割 、 求和 、 取极限

    我们先来复习一下二重积分的定义:

    \iint_{D}^{ }f(x,y)dxdy=\lim_{N\rightarrow \infty }\left[\sum_{i=0}^{N}f(x_{i},y_{i})\bigtriangleup x\bigtriangleup y\right]

    对于一重积分的情况,请参见https://blog.csdn.net/weixin_42612337/article/details/82829351

    当然,这里面影响定积分的精度的主要因素就是N的大小,N越大,计算结果越接近真实值, 但同时,N越大,计算时间也就越长。

    下面是C代码:

    //
    //  main.c
    //  double_integral
    //
    //  Created by Wayne on 2018/9/29.
    //  Copyright © 2018 Wayne. All rights reserved.
    //
    
    #include <stdio.h>
    #include <math.h>
    
    long double function(long double x , long double y);    //这里声明被积函数
    
    int main(void)
    {
        unsigned long long N = 1000000000;    //强烈建议把N取小一点 , 十亿实在算的太慢了
        unsigned long long i , j;
        long double V;
        long double a , b , c , d;
        scanf("%Lf %Lf %Lf %Lf" , &a , &b , &c , &d);
        
        for (j = 0 ; j <= N ; j++)
        {
            for (i = 0 ; i <= N ; i++)
            {
                V += ((b - a) * (d - c) / (N * N)) * function((a + ((b - a) / N) * i) , (c + ((d - c) / N) * j));
            }
        }
        
        printf("%Lf\n" , V);
        
        return 0;
    }
    
    long double function(long double x , long double y)    //这里定义被积函数
    {
        long double z = x + y;    //我们取 f(x,y) = x + y 这个简单的情形为例
        return z;
    }

    下面是终端运行的情况,注意在这里笔者取了两个积分区间,其中

    D_{1}=\left \{ (x,y)|x\in [1.5 , 3],y\in [2 , 4.5] \right \},N_{1}=10000 ,

    D_{2}=\left \{ (x,y)|x\in [0 , 1] , y\in [0 , 1]\right\},N_{2}=100000

    对于至于为什么不取上面代码里面的十亿,看第四段。

    对于D1:(真实值应该是20.625)

    对于D2:(真实值应该是1)

    由于笔记本电脑运算能力导致的运算时间的限制,我不得不降低了精读,如果使用更加专业的工具,或许就能在提高精度的同时提高速度了。

    展开全文
  • 我的问题是对图中的积分单元求二重积分,其中p, r, f已知。二重积分上下限也已知。由于不懂matlab , 自己编了个代码。但是积分不出来。不知各位大神有什么办法,小弟昨天刚接触matlab.clc; clear all; close all;...

    我的问题是对图中的积分单元求二重积分,其中p, r, f已知。二重积分上下限也已知。

    由于不懂matlab , 自己编了个代码。但是积分不出来。

    不知各位大神有什么办法,小弟昨天刚接触matlab.

    clc; clear all; close all;

    syms alpha beta p R f;

    eq1 =p * R^2 * sin(beta) * cos(beta)- f * R^2 *  sin(beta) ...

    * sqrt(cos(alpha)^2 * cos(beta)^2 + sin(alpha)^2);

    eq2 =p * R^2 * sin(beta)^2 *cos(alpha)- (f * R^2 * cos(alpha) *  sin(beta)^2 * cos(beta))/ sqrt(cos(alpha)^2 * cos(beta)^2 + sin(alpha)^2)

    FZ= 2*int(int(eq1, alpha, 0, pi/2), beta, 0, pi/6)

    FX= 2*int(int(eq2, alpha, 0, pi/2), beta, 0, pi/6)

    pretty(FX);

    pretty(FZ);

    FZ =2*int(-f*R^2*sin(beta)*EllipticE(sin(beta))+1/2*p*R^2*sin(beta)*cos(beta)*pi,beta = 0 .. 1/6*pi)

    FX =2*int(p*R^2*sin(beta)^2+1/4*R^2*sin(beta)^2*f*cos(beta)*(-i*(-sin(beta)^2)^(1/2)*log(-i*cos(beta)/(-sin(beta)^2)^(1/2)*csgn(cos(beta)))+i*(-sin(beta)^2)^(1/2)*log(cos(beta)/(-sin(beta)^2)^(1/2)*csgn(cos(beta))*i)-2*atan(1/2*(-2+cos(beta)^2)*(-sin(beta)^2)^(1/2)/(cos(beta)^2-1))*(cos(beta)^2-1)^(1/2))/(cos(beta)^2-1)^(1/2)/(-sin(beta)^2)^(1/2),beta = 0 .. 1/6*pi)

    1/6 pi

    /                                                       /

    |           2          2        2          2             |

    2  |        p R  sin(beta)  + 1/4 R  sin(beta)  f cos(beta) |

    |                                                        |

    /                                                         \

    0

    2 1/2     -i cos(beta) csgn(cos(beta))

    -(-sin(beta) )    log(----------------------------) i

    2 1/2

    (-sin(beta) )

    2 1/2     cos(beta) csgn(cos(beta)) i

    + (-sin(beta) )    log(---------------------------) i

    2 1/2

    (-sin(beta) )

    2             2 1/2                     \

    (-2 + cos(beta) ) (-sin(beta) )               2     1/2|

    - 2 atan(1/2 ----------------------------------) (cos(beta)  - 1)   |

    2                                   |

    cos(beta)  - 1                               /

    /            2     1/2            2 1/2

    /  ((cos(beta)  - 1)    (-sin(beta) )   ) dbeta

    /

    1/6 pi

    /

    |

    2  |

    |

    /

    0

    2                                         2

    -f R  sin(beta) EllipticE(sin(beta)) + 1/2 p R  sin(beta) cos(beta) pi

    dbeta

    2013-11-21 10:20 上传

    442a53943febe9465fc072b4fbe10813.gif

    b2a5a3e0dcc7d508e00275fe42fce1b5.gif

    e295fc865c106ab47941495d62949eb2.png

    展开全文
  • matlab的一个二重积分,经典的matlab的二重积分函数,简单易懂。
  • 用复合辛普森公式求函数二重数值积分MATLAB程序代码
  • 怎么用matlab计算这个二重积分 如何用matlab求二重积分www.zhiqu.org 时间: 2020-12-07题主给出的二重积分,用matlab的int()函数无法得到其解析值。如l=0.5,R=0.39,则可以通过下列代码,求得其数值解l=0.5,R=...
  • MATLAB中进行二重积分函数integral2和quad2d q = integral2(fun,xmin,xmax,ymin,ymax) q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value) integral2 Numerically evaluate double integral. Q = integral2...
  • matlab二重积分

    千次阅读 2021-05-06 08:44:48
    《matlab二重积分》由...1、一 使用两次一重积分%二重积分f= (x,y)exp(sin(x)*ln(y),y从5*x积分到x2,x从10积分到201 (7.X后版本才有此函数quad2d)y1=quad2d(x,y) exp(sin(x).*log(y),10,20,(x)5*x,(x)x.2)2 y2 ...
  • SciPy函数求积分

    2020-11-21 04:14:42
    18. SciPy求函数积分本章研究的主题是SciPy下实现求函数积分函数的基本使用。积分,高等数学里有大量的讲述,基本意思就是曲线下面积之和。$$I(f) \approx \sum_{i = 1}^{n} w_i f(x_i) + r_n$$其中$r_n$可...
  • 二重积分求

    2022-03-09 22:21:43
    目的:熟练掌握二重积分的计算方法 重点:利用直角坐标和极坐标计算二重积分 难点:化二重积分为二次积分的定限问题
  • 计算二重积分,MATLAB代码的主要重点就是通过arrayfun函数来排序。
  • 复变函数积分中的换元法与分部积分法 论文资源,讲的很好
  • c语言实现二重积分

    2020-12-23 14:39:09
    二重积分的表达形式其中积分区域为:x=1 y=1 y=-4/5*x+29/5积分函数为: f(x,y)=1#include &ltstdio.h&gt#include &ltmath.h&gtstatic double simp1(double x,double eps, void (*s)(double x,...
  • 蒙特卡洛方法实现三重积分二重积分,北邮科学计算与编程作业
  • 函数在任意三角区域二重积分的计算
  • 东南大学数学系 HECHUANFU二重积分习题课东南大学数学系
  • 在MATLAB中用复合辛普森公式求函数二重数值积分
  • 高等数学三(微分方程,多元函数微分学,二重积分,空间解析集合)思维导图,二重积分在高数三占比较少,主要为高数四曲线曲面积分准备,原创整理,望各位斧正。
  • 我正在寻找一种使用numpytrapz或scipy堆栈中的类似函数对采样数据执行双重积分的方法。在我特别想计算一下函数:其中f(x',y')是采样数组,F(x, y)是相同维度的数组。在这是我的尝试,结果不正确:def integrate_2D(f...
  • 行业文档-设计装置-一种二元函数二重积分教学模具.zip
  • matlab求二重积分

    2021-04-20 01:28:24
    函数的数值积分格式 q = quad2dggen(fun,xlower,xupper,ymin,ymax) %在由[xlower,...函数关系数据向量 trapz(X,Y) ans = 0.2858 7.1.3 多重定积分的数值求解 MATLAB提供的dblquad函数用于求二重积分的数值 解,tri...
  • 记录两个函数,normcdf和norminv
  • 计算在同一区域上的二重高斯-勒让德积分
  • 这个积分有点意思.....我觉得估计你最好需要表达式里面有些数值更高精度的,我假设你里面的数值都是解析的 无穷精度(不过检查了下,用小数 算出来结果一样)最后2个输出结果应该是对了....1.74992*10^9没有倒数----...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,674
精华内容 1,069
关键字:

二重函数求积分