【问题标题】:How to solve an equation with 3 unknown coefficients in Matlab?如何在 Matlab 中求解具有 3 个未知系数的方程?
【发布时间】:2015-11-10 11:20:03
【问题描述】:

我有这个三次样条函数:

s(x) = 4 + k1*x + 2x^2 - (1/6)*x^3  for x in [0,1]
s(x) = 1 - (4/3)*(x-1) + k2*(x-1)^2 - (1/6) * (x-1)^3 for x in [1,2]
s(x) = 1 + k3*(x-2) + (x-2)^2 - (1/6) * (x-2)^3 for x in [2,3]

我想实现一个简单的函数,给这个函数,它确定系数k1,k2和k3,但我做不到..

有人有想法吗?

【问题讨论】:

  • 只是要明确一点:我可能想分别注意三个 s(x) 函数,即使我知道您最终需要一个分段函数。除了表现出尝试自己的努力之外,您的问题还缺少问题说明:什么指定了系数?
  • 你想达到什么目的?得到一个连续函数?得到一个可微函数?
  • @AndrasDeak 我只是不知道从哪里开始 :-/ 我想确定 k1、k2 和 k3,以便 s(x) 将区间 [0,3] 中的插值作为三次样条函数
  • 所以查看三次样条的定义,并将其添加到您的问题中。它必须知道一些事情:它必须进行插值,因此s(x) 的值由输入在某些点给出。这可以给你方程式。但话又说回来,它必须有一些 analitity 标准:如@Daniel 所要求的那样是连续的,甚至是可微的。如果不指定您想要实现的目标(甚至是对您自己),您将无法成功。
  • 所以,拿一张纸和一支笔,查看分段函数,并确定获得连续、二次可微函数的条件。

标签: matlab function interpolation spline cubic-spline


【解决方案1】:

将 3 个函数分别表示为 s0(x)、s1(x) 和 s2(x),可以展开 s1(x) 和 s2(x) 并收集 x^3、x^2、x 和常数项。然后,你得到

s1(x)= 4 +k1*x+2*x^2-(1/6)*x^3
s2(x)= (5/2+k2)+(-11/6-2k2)*x+(k2+1/2)*x^2-(1/6)*x^3
s3(x)= ... ..(离开我们的 供您自己练习)

如果这 3 个函数都是三次多项式,它们应该是相同的。所以,你可以拥有

4 = 5/2 + k2
k1 = -11/6 - 2k2
2 = k2+1/2

从中可以得到 k1=-29/6, k2=3/2。

比较方程s0(x)和s2(x),还可以得到k3 = 7/6。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多