作业帮 > 综合 > 作业

用matlab求解一个积分方程组,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 18:31:21
用matlab求解一个积分方程组,

求解这样一个方程组,其中M0=2400,u=1/6的重力加速度.fx fy  z  是变量.fy  z 的值. 谢谢.
>> syms fx fy z t f m u;
>> F1=fx/(m-(f*t)/2940);
>> F2=u-(fy/(m-(f*t)/2940));
>> d1=int(F1,t,0,z);
>> d2=int(F2,t,0,z);
>> d1
d1 =
-2940*fx*(log(m-1/2940*f*z)-log(m))/f
>> d2
d2 =
(u*z*f+2940*fy*log(m-1/2940*f*z)-2940*fy*log(m))/f
>> e1=sym('1692=d1');
>> e2=sym('57=d2');
>> e3=sym('fx^2+fy^2=7500^2');
>> e4=sym('f^2=7500^2');
接下来就不知道怎么解了
刚好回答了另外一个类似的问题(1830658703514901060,替换网页地址question后面的那串数字即可).
 
这个问题应该很难求出解析解,应该使用fsolve求数值解.
参考代码(题中所给条件u=1/6疑为u=g/6之误):
m = 2400;
Q = 7500/2490;
g = 9.8;
a = g/6;
% Tx = x1,Ty = x2,t = x3
f = @(x) [quadl(@(t)x(1)./(m-Q*t),0,x(3))-1692;
    quadl(@(t)x(2)./(m-Q*t)-a,0,x(3))-57;
    sqrt(x(1)^2+x(2)^2)-7500];
x = fsolve(f,[5304,5304,700]);
fprintf('Tx = %.2f\nTy = %.2f\nt = %.2f\n',x)
 
求出的结果:
Tx = 6873.97
Ty = 2999.75
t = 417.17
再问: 很是感谢,但是现在我们已经改了方程了,能麻烦再解一下这个方程组么?我可以追加悬赏。谢谢  那个378235改为427383,
再答: 1、那几个Δ都要求等于0吗?
2、ΔH、ΔL的表达式中,对x进行积分的区间上限是x,意味着多了一个变量x待求?而且,被积函数中也并没有和x相关的项,那样照理说直接用被积函数乘以积分区间宽度就可以了?
再问: 不好意思,图片除了点错误。

再答: 你确定现在的公式就没问题吗?
看你的改动,一是把378235改为427383,二是把被积函数中的t改成x。
但这样又带来了问题:被积函数与t无关,0-t的定积分就是把函数乘以t,你确定是你想要的?

另外,我刚才问你的问题你并没有回答。

建议仔细梳理一下问题,减少无意义的反复,既有助于你的问题早点解决,也可以尽量避免浪费回答者的时间。
再问: 把那两个式子拆成这四个应该意思就很明确了,因为有点赶时间,所以麻烦了。要是还是出错我们也就会放弃这个方法,但是还是会采纳你的答案的。那几个位移是已知的了呀。