一个matlab求定积分的问题。谢谢。20分。
发布网友
发布时间:2022-04-26 23:25
我来回答
共1个回答
热心网友
时间:2022-06-20 02:08
这题吧。。。用手算其实更快。这是一个优化的问题,需要分三步走:
第一步,建一个
function
y
=
myfun(x);
y
=
x.^2
+
3;
保存为myfun.m
第二步,建一个
function
y
=
myobj(x);
temp
=
quad(@myfun,
52.5,
x);
y
=
temp^2
-
2*562.6*temp;
保存为myobj.m
第三步,在MATLAB窗口里面运行:
[X,FVAL]=fminunc(@myobj,
52.5);
这个时候看一下你的X值,
就是你想求的解。
这三步的思路是:
1.建方程myfun:
y
=
x2
+
3,这是基础。
2.该方程在X域上的积分就是:Z
=
quad(@myfun,
52.5,
x)
若想求Z
=
562.6,
实际上就是求一个优化问题的解,该问题为:
min|Z
-
562.6|
这个问题可以进一步化为:
min(Z^2
-
2*562.6*Z)
3.
那么这变成了一个无约束的优化问题,我们可以用fminunc来解,起始点选在52.5,得出的结果X
=
52.7031
更简单的?用手算吧,这种问题没必要上MATLAB。