如何计算图形和方程中带有 x 的值的值?
how to calculate the value of a value with x in a graph and equation?
如何计算y = [10 30 60]的值,在图中得到它的x值,参考一下如何应用代码?
x = [63 50 38 26.5 19 13.2 9.5 4.75 2.36 1.18 0.6 0.3 0.15 0.01];
y = [100 100 92 18 1 0 0 0 0 0 0 0 0 0];
z=max (x);
l=min (x);
xq1 = -l:0.5:z;
p = pchip(x,y,xq1);
semilogx(x,y,'ob',xq1,p,'-r');
hold on
grid on;
xlim([0.01 100])
ylim([0 100])
legend('Curva','Linea')
示例:
所以如果我没猜错,你想要 x = f(y)
一些 x 有序降序折线?
找到覆盖你的y
的线段
简单地遍历所有线段并找到所有符合以下条件之一的线段:
y[i]<= y < y[i-1]
y[i]>= y > y[i-1]
插入x
位置
最简单的使用线性插值:
x = x[i] + (x[i-1]-x[i])*(y-y[i])/(y[i-1]-y[i])
如果您需要使用更高阶的插值...
所以例如让 y=10
然后 i=4
因为:
1 < 10 < 18
所以:
x = x[i] + (x[i-1]-x[i])*(y-y[i])/(y[i-1]-y[i])
x = 19 + ( 26.5 - 19 )*(10- 1 )/( 18 - 1 )
x = 19 + 7.5*9/17
x = 19 + 3.9705882352941176470588235294118
x = 22.970588235294117647058823529412
如何计算y = [10 30 60]的值,在图中得到它的x值,参考一下如何应用代码?
x = [63 50 38 26.5 19 13.2 9.5 4.75 2.36 1.18 0.6 0.3 0.15 0.01];
y = [100 100 92 18 1 0 0 0 0 0 0 0 0 0];
z=max (x);
l=min (x);
xq1 = -l:0.5:z;
p = pchip(x,y,xq1);
semilogx(x,y,'ob',xq1,p,'-r');
hold on
grid on;
xlim([0.01 100])
ylim([0 100])
legend('Curva','Linea')
示例:
所以如果我没猜错,你想要 x = f(y)
一些 x 有序降序折线?
找到覆盖你的
的线段y
简单地遍历所有线段并找到所有符合以下条件之一的线段:
y[i]<= y < y[i-1] y[i]>= y > y[i-1]
插入
x
位置最简单的使用线性插值:
x = x[i] + (x[i-1]-x[i])*(y-y[i])/(y[i-1]-y[i])
如果您需要使用更高阶的插值...
所以例如让 y=10
然后 i=4
因为:
1 < 10 < 18
所以:
x = x[i] + (x[i-1]-x[i])*(y-y[i])/(y[i-1]-y[i])
x = 19 + ( 26.5 - 19 )*(10- 1 )/( 18 - 1 )
x = 19 + 7.5*9/17
x = 19 + 3.9705882352941176470588235294118
x = 22.970588235294117647058823529412