MATLAB程序,递推公式
答案:1 悬赏:70 手机版
解决时间 2021-04-15 12:36
- 提问者网友:酱爆肉
- 2021-04-15 02:54
MATLAB程序,递推公式
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-04-15 04:30
两个问题:
1、图片给出了π1=1,π2=3cos(theta),你的代码为什么是pi(1)=0;pi(2)=1;呢?
2、关键的错误:pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*p1(n-2)/(n-1); 这一行,你把pi写成p1了
直接改成下面这样:
function result=pintaun(theta,alpha)
n_stop=fun_nstop(alpha);
pi(1)=1;
pi(2)=3*cos(theta);
for n=3:n_stop
pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*pi(n-2)/(n-1);
tau(n)=n*cos(theta)*pi(n)-(n+1)*pi(n-1);
end;
result=[pi(n),tau(n)];追问我写错了,应该是改过来的,但主要问题不是这个追答那问题是什么?根据我改的,结果没问题啊追问你能出结果吗?截个图看下追答我这儿不能直接出结果,因为我不知道你的 fun_nstop(alpha);函数是什么,我测试的时候是直接给定n_stop的值,测试代码:
function result=pintaun(theta,n_stop)
% n_stop=fun_nstop(alpha);
pi(1)=1;
pi(2)=3*cos(theta);
for n=3:n_stop
pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*pi(n-2)/(n-1);
tau(n)=n*cos(theta)*pi(n)-(n+1)*pi(n-1);
end;
result=[pi(n),tau(n)];测试例子,取theta=0,理论结果π3=15/2 cos(theta)^2 - 3/2 = 6, 下面是计算结果截图
不知道你要的结果是什么,是根据任意theta值得到πn的结果,还是需要一个表达式。
追问不必非要看着那个程序,关键是图片里的模型结果,可以做到吗追答当然没问题,我就写πn的计算公式,其他的你类推,函数代码:
function pn = fun_pi(n)
syms t;
if n==1
pn = 1;
elseif n==2
pn = 3*cos(t);
else
pn=(2*n-1)*cos(t)*fun_pi(n-1)/(n-1)-n*fun_pi(n-2)/(n-1);
end测试结果
1、图片给出了π1=1,π2=3cos(theta),你的代码为什么是pi(1)=0;pi(2)=1;呢?
2、关键的错误:pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*p1(n-2)/(n-1); 这一行,你把pi写成p1了
直接改成下面这样:
function result=pintaun(theta,alpha)
n_stop=fun_nstop(alpha);
pi(1)=1;
pi(2)=3*cos(theta);
for n=3:n_stop
pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*pi(n-2)/(n-1);
tau(n)=n*cos(theta)*pi(n)-(n+1)*pi(n-1);
end;
result=[pi(n),tau(n)];追问我写错了,应该是改过来的,但主要问题不是这个追答那问题是什么?根据我改的,结果没问题啊追问你能出结果吗?截个图看下追答我这儿不能直接出结果,因为我不知道你的 fun_nstop(alpha);函数是什么,我测试的时候是直接给定n_stop的值,测试代码:
function result=pintaun(theta,n_stop)
% n_stop=fun_nstop(alpha);
pi(1)=1;
pi(2)=3*cos(theta);
for n=3:n_stop
pi(n)=(2*n-1)*cos(theta)*pi(n-1)/(n-1)-n*pi(n-2)/(n-1);
tau(n)=n*cos(theta)*pi(n)-(n+1)*pi(n-1);
end;
result=[pi(n),tau(n)];测试例子,取theta=0,理论结果π3=15/2 cos(theta)^2 - 3/2 = 6, 下面是计算结果截图
不知道你要的结果是什么,是根据任意theta值得到πn的结果,还是需要一个表达式。
追问不必非要看着那个程序,关键是图片里的模型结果,可以做到吗追答当然没问题,我就写πn的计算公式,其他的你类推,函数代码:
function pn = fun_pi(n)
syms t;
if n==1
pn = 1;
elseif n==2
pn = 3*cos(t);
else
pn=(2*n-1)*cos(t)*fun_pi(n-1)/(n-1)-n*fun_pi(n-2)/(n-1);
end测试结果
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯