如何用Matlab求以下积分
来源:百度知道 编辑:UC知道 时间:2024/06/28 15:30:56
被积函数如下
y=(20*a1*(E1-b1*log10(x)-R1*x-m1*exp(n1*x))-20*a2*(E2-b2*log10(x)-R2*x-m1*exp(n2*x)))^2
x的范围可以自己给定,其余E、b、R、m、n均为常数。
我的程序如下:
model.m
function y=model(x)
global alpha1 alpha2 area m1 n1 m2 n2 E01 E02 b1 b2 R1 R2
y=(20*alpha1*(E01-b1*log10(i)-R1*i-m1*exp(n1*i))-20*alpha2*(E02-b2*log10(i)-R2*i-m2*exp(n2*i)))^2
y=eval(int('model',u,v));
其中(u,v)为积分区间
y=(20*a1*(E1-b1*log10(x)-R1*x-m1*exp(n1*x))-20*a2*(E2-b2*log10(x)-R2*x-m1*exp(n2*x)))^2
x的范围可以自己给定,其余E、b、R、m、n均为常数。
我的程序如下:
model.m
function y=model(x)
global alpha1 alpha2 area m1 n1 m2 n2 E01 E02 b1 b2 R1 R2
y=(20*alpha1*(E01-b1*log10(i)-R1*i-m1*exp(n1*i))-20*alpha2*(E02-b2*log10(i)-R2*i-m2*exp(n2*i)))^2
y=eval(int('model',u,v));
其中(u,v)为积分区间
求数值积分可用quad函数。
function test()
clear all;clc;
global alpha1 alpha2 m1 n1 m2 n2 E01 E02 b1 b2 R1 R2
alpha1=1;
alpha2=1;
m1=.2;
n1=.3;
m2=.4;
n2=.5;
E01=.6;
E02=.7;
b1=.8;
b2=.9;
R1=1;
R2=1;
u=0;
v=.01;
Q = quad(@model,u,v)
end
function y=model(i)
global alpha1 alpha2 m1 n1 m2 n2 E01 E02 b1 b2 R1 R2
y=(20*alpha1*(E01-b1*log10(i)-R1*i-m1*exp(n1*i))-20*alpha2*(E02-b2*log10(i)-R2*i-m2*exp(n2*i))).^2;
end
老大,额是小学生
用符号变量可以做:
syms alpha1 alpha2 area m1 n1 m2 n2 E01 E02 b1 b2 R1 R2
y=(20*alpha1*(E01-b1*log10(i)-R1*i-m1*exp(n1*i))-20*alpha2*(E02-b2*log10(i)-R2*i-m2*exp(n2*i)))^2
int(y,x)