求解微分方程

2视图(30天)
西蒙
西蒙 2022年11月28日
评论道: Bjorn Gustavsson 2022年11月28日
大家好,我似乎无法找到一个方法来解决下列微分方程。
我有V的数组(这是我indipendent变量)和C(依赖),我需要找到一个守时的N值的每个值C和V。
在网上查找我试图利用这行代码
ode = y = = ((C) ^ 3) / (k) * diff (V, C)
但我得到的错误:错误使用diff差异必须一个正整数N标量
5个评论
西蒙
西蒙 2022年11月28日
我喜欢思考建立一条线
如果我知道角系数的值数据集,我能准时N的值

登录置评。

接受的答案

Bjorn Gustavsson
Bjorn Gustavsson 2022年11月28日
根据你的描述你没有一个微分方程的值 C 和已知的相关值 V ,你想要的值 N 根据你的方程。从这只是你能做的最好:
N = C ^ 3 / k *梯度(V C);
HTH
3评论
Bjorn Gustavsson
Bjorn Gustavsson 2022年11月28日
@Simone ,你必须跟踪何时使用element-wise操作(。/ *和。^),当使用矩阵运算(* / \ ^)。我也注意到我搞错。解决方案应该是 @Davide马塞罗说道 把上图:
N = C ^ 3 / k。*梯度(V C);
在这里我们首先使用elementwise权力因素。然后,自 k 是一个标量常数没关系如果我们使用/(右阵列划分)或。/。然后我们把梯度。在你你试着正确的变体数组划分 k * 梯度(V, C) 分母不匹配问题的方程。你的答案可能也因此成为:
N = C ^ 3. / (k。*梯度(V C));

登录置评。

答案(1)

大卫。马塞罗说道
大卫。马塞罗说道 2022年11月28日
既然你有数据V C可以适合微分方程的解析解。
假设这是你的数据集
k = 10;
C = (1 2 3 4 5 6 7 8 9 10];
V = [0.0158 11.3471 13.4291 14.1110 14.4800 14.5975 14.7361 - 14.8572 14.8940 - 14.9459);
让我们还假设初始条件 v (c = 1) = 0
你可以找到通用的微分方程解析解 N
信谊x y (x) N
myode = diff (y, x) = = N * 10 / x ^ 3;
索尔= dsolve (myode y (1) = = 0)
索尔=
然后,把象征性的解决方案变成一个匿名函数。
f = matlabFunction (sol)
f =function_handle与价值:
@ (N, x) N * 1.0. / x ^ 2。* (x ^ 2 - 1.0) * 5.0
最后适应函数的数据
fitobj =适合(C, V, f,曾经繁荣的,1)
fitobj =
通用模型:fitobj (x) = N * 1.0. / x ^ 2。* (x ^ 2 - 1.0)。* 5.0系数(95%置信界限):N = 3.015 (3.01, 3.02)
结果是N = 3.015,这是考虑到我了假C和V数据通过使用N = 3和添加随机噪声。
2的评论
大卫。马塞罗说道
大卫。马塞罗说道 2022年11月28日
也许你的数据已经安排在列,在这种情况下,您需要删除后撇号 C V 适合 函数。

登录置评。

类别

找到更多的在数学帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!