matlab求定积分问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:19:13
用 matlab
函数y=f(x)在x1和x2之间的定积分为z

y=f(x)为一个分段函数。
现在已知这个面积z,已知x1,y=f(x),这些都是已知的数,怎么求x2 ?

例如:y=f(x)在[0 4]区间内为y=x^2+3,在(4 6]区间内为y=4x,在(6 9]区间内为y=3,x1=52.5,z=56.6,
如何得到x2 ?
麻烦给出一个通用的matlab的程序,最好编一个函数,输入数据(函数可以不用输,可以在程序里面写出),输入x1和z,即可得出结果x2。
谢谢了。
我的联系方式,腾讯181793495

function x2=myfun(x1,z)
f=@(x)(x<=4&x>=0).*(x.^2+3)+(x<=6&x>4).*(4*x)+(x<=9&x>6)*3;
F=@(x)quadl(f,x1,x)-z;
x2=fzero(F,x1+1);

楼上解答非常通用,对于初学者来说有难度,这样:

clc;clear
x1=0;z=56.6;
f=@(x)(x<=4&x>=0).*(x.^2+3)+(x<=6&x>4).*(4*x)+(x<=9&x>6)*3;
ezplot(f,[0 9])
F=@(x2) quad(f,x1,x2)-z;
x2=fzero(F,1)

结果:
x2 =

5.2567