在 MATLAB 中寻找积分的未知极限

问题描述 投票:0回答:3

我有一个

c = integral of f(t)dt
形式的方程,将常数限制为变量(我不想显示完整的方程,因为它非常长且复杂)。有什么方法可以在 MATLAB 中计算该变量的值(没有其他变量并且方程太难手工求解)?

matlab symbolic-integration
3个回答
1
投票

假设您的限制是从

cons
t
,并且
g(t)
作为带有变量
t
的函数。现在,

syms t
f(t) = int(g(t),t);

这将为您提供不定积分。现在

f(t)
将是

f(t) = f(t)+f(cons);

您拥有

f(t)=c
的价值。所以只要解方程即可

S = solve(f(t)==c,t,'Real',true);

eval(S)
会给出我想的答案


0
投票

这是一个极其不清楚的问题 - 如果您不想发布完整的方程式,请发布一个示例

我假设这就是你的意图:你有一个你知道的被积函数 f(x),并且已被积分以给出一些你知道的常数 c,超过 x = 0 的限制,到 x = y,对于例如,y 可能会改变,而您希望找到 y

我的建议是手动积分 f(x),填写第一个限制,然后从 c 中减去该部分。接下来,您可以采用一些技术(例如牛顿-拉尔夫森方法)来迭代搜索方程的根,该根应该仅在 x 中


0
投票

您可以使用函数句柄quad函数进行积分

myFunc = @(t) exp(t*3); % or whatever
t0 = 0;
t1 = 3;
L = 50;
f = @(b) quad(@(t) myFunc(t,b),t0,t1);
bsolve = fzero(f,2);

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.