Matlab 如何通过点放置多项式
我想找到通过这个点的二次曲线(0,0)(π,2.1)(π,0) 这是我的密码Matlab 如何通过点放置多项式,matlab,Matlab,我想找到通过这个点的二次曲线(0,0)(π,2.1)(π,0) 这是我的密码 x = [0 pi pi]'; V = fliplr(vander(x)); % or V = [x.^2 x x.^0] y = [0 2.1 0]'; c = V \ y 错误出现在第4行 Warning: Matrix is singular to working precision. 结果是: c = NaN Inf -Inf 我试着用其他的数字来代替圆周率,结果它成功了。
x = [0 pi pi]';
V = fliplr(vander(x)); % or V = [x.^2 x x.^0]
y = [0 2.1 0]';
c = V \ y
错误出现在第4行
Warning: Matrix is singular to working precision.
结果是:
c =
NaN
Inf
-Inf
我试着用其他的数字来代替圆周率,结果它成功了。因此,如果你能帮助我,请找个人。这种方法只适用于在指定的x值处找到具有指定y值的多项式。每个x值只能有一个y值 如果要找到通过这些点的二维曲线,需要引入一个参数,例如t,并找到x和y坐标的单独公式,如下所示:
t = 0:2;
x = [0 pi pi]';
y = [0 2.1 0]';
V = fliplr(vander(t'));
cx = V \ x
cy = V \ y
嗯,你的矩阵是奇异的(它有秩1),所以它没有逆。你知道我能做些什么,让它工作吗?我只想找到二次方程。这意味着什么?不可能存在这样的二次方程:
a*pi^2+b*pi+c==2.1
,同时a*pi^2+b*pi+c==0
,因为这意味着2.1==0
。这正是你要计算的。嗯,这就是重点,我的老师把它作为家庭作业交给我,我试着去做。你明白为什么不可能吗?我猜她想让你明白你的意思。(你可以通过这三个点得到二次曲线,即使是无限多个点,但它们在x中不是二次曲线,而是旋转的抛物线。)哈哈,无论如何,我犯了一个错误:D。。x=[0π/2π]和y=[0 1 0]