matlab编写积分程序

matlab编写积分程序,第1张

你好!大神在此!

主程序:

%matlab编写积分程序请问哪位大神能编写下面的程序:不胜感激

clc;clear all

global t

R=1:001:5;

m=zeros(size(R));

for i=1:length(R)

    t=R(i);

    m(i)=integral2(@f,0,R(i),0,2pi);

end

plot(R,m)

xlabel('R')

ylabel('m')

title('m-R Curve')

函数程序:

function c=f(r,theta)

global t

c=rsqrt((tcos(theta)-r)^2+t^2(sin(theta))^2);

end

画出效果:

你好!

clear

clc

x0=0;%积分起点

xf=10;%积分终点

n=10001;

x=linspace(x0,xf,n);%分成n-1份

dintt=sum(1/(n-1)(1/(x+5)))%Riemman和

如果对你有帮助,望采纳。

有区别:这里假定pi是double型的变量

1)x为整型时,y=sin(xpi/180);会先计算xpi得到double型数据(因为pi的类型),然后再做除法

z=sin(x/180pi);会先计算x/180得到整型数据(因为分子、分母均整型)小数部分被

截断了然后再与pi相乘得到double类型结果

应当写做:z=sin((double)x/180pi);或z=sin(x/1800pi);

只要分子、分母中有一个数据类型是double的会使编译程序调用double类型的

运算步骤。

2)x是double型但取值很大时

y=sin(xpi/180);会先计算xpi,如果x的值大得xpi会超出double类型表示范围时就会出问题

y=sin(x/180pi);会先计算除法,这样先缩小得数再做乘法保证结果不会溢出

1

Public

Function

梯形积分(r

As

String,

a

As

Double,

b

As

Double,

n

As

Integer)

As

Double

2

Dim

dx

As

Double,

i

As

Integer

3

dx

=

(b

-

a)

/

n

4

For

i

=

1

To

n

5

梯形积分

=

梯形积分

+

fx(r,

(a

+

dx

(i

-

1

/

2)))

dx

6

Next

i

7

End

Function

8

Public

Function

复化辛普生积分(r

As

String,

a

As

Double,

b

As

Double,

n

As

Integer)

As

Double

9

Dim

dx

As

Double,

i

As

Integer,

m

As

Integer

10

m

=

2

n

11

dx

=

(b

-

a)

/

m

12

复化辛普生积分

=

fx(r,

a)

+

fx(r,

b)

13

For

i

=

2

To

m

Step

2

14

复化辛普生积分

=

复化辛普生积分

+

4

fx(r,

(a

+

dx

(i

-

1)))

+

2

fx(r,

(a

+

dx

i))

15

Next

i

16

复化辛普生积分

=

(复化辛普生积分

-

2

fx(r,

(a

+

dx

m)))

dx

/

3

17

End

Function

18

Public

Function

fx(f

As

String,

x

As

Double)

As

Double

19

f

=

LCase(f)

20

fx

=

Evaluate(Replace(f,

"x",

x))

21

End

Function

两个函数的参数都是1积分函数,自变量用x表示,x不区分大小写2积分下限3积分上限4划分次数,不能大于32766,对于梯形积分,越大越接近真值,对于复化辛普生积分,没必要使用大的划分次数积分区间包含奇点(趋近于无穷的点),复化辛普生公式将不能正确积分,将来可能会修正也希望高手出招调用方法:=梯形积分("sin(x)^3-ln(x+1)^3+x^5-x",

0,

2,

2000)

以上就是关于matlab编写积分程序全部的内容,包括:matlab编写积分程序、用matlab编写程序,求解1/(x+5)的定积分,方法根据定积分的原始定义、用c语言编写y=sin()利用积分概念等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9836429.html

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

发表评论

登录后才能评论

评论列表(0条)

保存