如何存储函数值生成一个for循环?

6视图(30天)
大家晚上好。
在试图分配一个for循环生成的函数值为一个向量,我想出了以下错误,生成的代码如下:
”“”
错误使用拉格朗日
太多的输出参数。
要是误差(19)行
z (i) =拉格朗日(xx (i), x, y)
”“”
我注意到代码波纹管运行完全没有迭代向量z,我。e,这段代码的输出没有向量z打印出的值函数,
clc;明确
x = (2, 1, 0, 1, 2, 3];
y =(1, 4, 11日,16日,13日,4];
d0 = difdiv (x, y);
d = d0 (1);
x2 = linspace (2, 2, 10);
i = 1:长度(x2)
拉格朗日(x2 (i), x, y)
结束
输出,
ans = 11.3474
ans = 1
ans = 1.4554
ans = 3.3594
....和so on for each value in the vector x2.
我也使用其他辅助功能的代码,请在下面找到他们
函数deflatedpolylagrange (x,间,d)
n_d =长度(d);
n_x =长度(间);
如果n_d ~ = n_x
disp (“不可能的”。)
结束
v (1) = d (n_x);
我= 2:n_x
v (i) =(张)* (x -间(n_x - i + 1)) + d (n_x - i + 1);
结束
v(结束)
结束
函数一个= difdiv (x, y)
n =长度(x);
一个= 0 (n, n);
(:1)= y ';
j = 2: n
i = 1: (n - j + 1)
(i, j) = ((i + 1, j - 1) - (i, j - 1)) / (x (i + j - 1) - x (i));
结束
结束
结束
函数拉格朗日(a, x, y)
d_before = difdiv (x, y);
d = d_before (1);
deflatedpolylagrange (a, x, d);
结束
还有比这些值以另一种方式排列向量?我。e,向量L, L = (11.3474、1、1.4554、3.3594)
(对不起,如果我的编码技术并不是最正确的,我只是一个新手,刚开始学习一些关于Matlab的数值方法类)
谢谢你如果你读这么远!
以下是我目前的代码:
clc;明确
x = (2, 1, 0, 1, 2, 3];
y =(1, 4, 11日,16日,13日,4];
d0 = difdiv (x, y);
d = d0 (1);
xx = linspace (2, 2, 10);
z = 0(1、长度(xx));
i = 1:长度(xx)
z (i) =拉格朗日(xx (i), x, y)
结束

接受的答案

凯文·霍利
凯文·霍利 2021年10月13日
我添加了输出函数称为z。
clc;明确
x = (2, 1, 0, 1, 2, 3];
y =(1, 4, 11日,16日,13日,4];
d0 = difdiv (x, y);
d = d0 (1);
xx = linspace (2, 2, 10);
z = 0(1、长度(xx));
i = 1:长度(xx)
z (i) =拉格朗日(xx (i), x, y);
结束
z
z = 1×10
1.0000 1.4554 3.3594 6.1852 9.4060 12.4952 14.9259 16.1715 15.7051 13.0000
函数z =拉格朗日(a, x, y)
d_before = difdiv (x, y);
d = d_before (1);
z = deflatedpolylagrange (a, x, d);
结束
函数z = deflatedpolylagrange (x,间,d)
n_d =长度(d);
n_x =长度(间);
如果n_d ~ = n_x
disp (“不可能的”。)
结束
v (1) = d (n_x);
我= 2:n_x
v (i) =(张)* (x -间(n_x - i + 1)) + d (n_x - i + 1);
结束
z = v(结束);
结束
函数一个= difdiv (x, y)
n =长度(x);
一个= 0 (n, n);
(:1)= y ';
j = 2: n
i = 1: (n - j + 1)
(i, j) = ((i + 1, j - 1) - (i, j - 1)) / (x (i + j - 1) - x (i));
结束
结束
结束

更多的答案(0)

标签

s manbetx 845


释放

R2021a

社区寻宝

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

开始狩猎!