Octave 用倍频程绘制三维函数
我在绘制3d函数时遇到了一个问题——当我输入数据时,我会得到一个线性图,如果我手动执行计算,这些值不会相加。我相信这个问题与使用矩阵有关Octave 用倍频程绘制三维函数,octave,Octave,我在绘制3d函数时遇到了一个问题——当我输入数据时,我会得到一个线性图,如果我手动执行计算,这些值不会相加。我相信这个问题与使用矩阵有关 INITIAL_VALUE=999999; INTEREST_RATE=0.1; MONTHLY_INTEREST_RATE=INTEREST_RATE/12; # ranges down_payment=0.2*INITIAL_VALUE:0.1*INITIAL_VALUE:INITIAL_VALUE; term=180:22.5:360; [down_
INITIAL_VALUE=999999;
INTEREST_RATE=0.1;
MONTHLY_INTEREST_RATE=INTEREST_RATE/12;
# ranges
down_payment=0.2*INITIAL_VALUE:0.1*INITIAL_VALUE:INITIAL_VALUE;
term=180:22.5:360;
[down_paymentn, termn] = meshgrid(down_payment, term);
# functions
principal=INITIAL_VALUE - down_payment;
figure(1);
plot(principal);
grid;
title("Principal (down payment)");
xlabel("down payment $");
ylabel("principal $ (amount borrowed)");
monthly_payment = (MONTHLY_INTEREST_RATE*(INITIAL_VALUE - down_paymentn))/(1 - (1 + MONTHLY_INTEREST_RATE)^-termn);
figure(2);
mesh(down_paymentn, termn, monthly_payment);
title("monthly payment (principal(down payment)) / term months");
xlabel("principal");
ylabel("term (months)");
zlabel("monthly payment");
我说的第二个数字并不像我预期的那样。如何更改公式以使其正确渲染?我尝试了您的脚本,但出现以下错误:
error: octave_base_value::array_value(): wrong type argument `complex matrix'
...
您的月付款
是一个复杂的矩阵(不应该如此)
我想问题出在电源操作员^
。您应该使用^
进行逐元素操作
从文件中:
x^yx**y
电力操作员。如果x和y都是标量,则此运算符返回x,并将x提升为y的幂。如果x是标量,y是方阵,则使用特征值展开计算结果。如果x是一个方阵。如果y是整数,则通过重复乘法计算结果;如果y不是整数,则通过特征值展开计算结果。如果x和y都是矩阵,则会产生错误
INITIAL_VALUE=999999;
INTEREST_RATE=0.1;
MONTHLY_INTEREST_RATE=INTEREST_RATE/12;
# ranges
down_payment=0.2*INITIAL_VALUE:0.1*INITIAL_VALUE:INITIAL_VALUE;
term=180:22.5:360;
[down_paymentn, termn] = meshgrid(down_payment, term);
# functions
principal=INITIAL_VALUE - down_payment;
figure(1);
plot(principal);
grid;
title("Principal (down payment)");
xlabel("down payment $");
ylabel("principal $ (amount borrowed)");
monthly_payment = (MONTHLY_INTEREST_RATE*(INITIAL_VALUE - down_paymentn))/(1 - (1 + MONTHLY_INTEREST_RATE)^-termn);
figure(2);
mesh(down_paymentn, termn, monthly_payment);
title("monthly payment (principal(down payment)) / term months");
xlabel("principal");
ylabel("term (months)");
zlabel("monthly payment");
该操作员的实施需要改进
x.^yx.**y
逐元素幂运算符。如果两个操作数都是矩阵,则行数和列数必须一致
谢谢你的回答-我会在我的八度音阶不再出错时试一试。。。