matlab 关于求偏导数具体值的问题以下是代码:num = 100;for i=1:numa(i) = sym (['a',num2str(i)]);%数组变量endy=a(1) ;for i=2:numy=y*a(i) ; %y=a1*a2*a3*...*a_numendf=diff(y,a(1));% 求y对a1的偏导%f=a2*a3*...*a_numfor i = 2:100a(

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 01:35:42
matlab 关于求偏导数具体值的问题以下是代码:num = 100;for i=1:numa(i) = sym (['a',num2str(i)]);%数组变量endy=a(1) ;for i=2:numy=y*a(i) ; %y=a1*a2*a3*...*a_numendf=diff(y,a(1));% 求y对a1的偏导%f=a2*a3*...*a_numfor i = 2:100a(

matlab 关于求偏导数具体值的问题以下是代码:num = 100;for i=1:numa(i) = sym (['a',num2str(i)]);%数组变量endy=a(1) ;for i=2:numy=y*a(i) ; %y=a1*a2*a3*...*a_numendf=diff(y,a(1));% 求y对a1的偏导%f=a2*a3*...*a_numfor i = 2:100a(
matlab 关于求偏导数具体值的问题
以下是代码:
num = 100;
for i=1:num
a(i) = sym (['a',num2str(i)]);%数组变量
end
y=a(1) ;
for i=2:num
y=y*a(i) ; %y=a1*a2*a3*...*a_num
end
f=diff(y,a(1));% 求y对a1的偏导
%f=a2*a3*...*a_num
for i = 2:100
a(i)=1; %a2=a3=a4=...=a_num=1
end
ff=subs(f);%将值带入f求y对a1偏导的具体值,结果应为1
disp(ff);
%但输出结果仍为:a2*a3*...*a_num
该如何进行变量的赋值?
如何解决呢?

matlab 关于求偏导数具体值的问题以下是代码:num = 100;for i=1:numa(i) = sym (['a',num2str(i)]);%数组变量endy=a(1) ;for i=2:numy=y*a(i) ; %y=a1*a2*a3*...*a_numendf=diff(y,a(1));% 求y对a1的偏导%f=a2*a3*...*a_numfor i = 2:100a(

for i = 2:100
  a(i)=1;  %a2=a3=a4=...=a_num=1 
end
改成
for i = 2:100
  eval(['a',num2str(i) '=1;'])
end
你原来的写法是把数组a的第2到第100个元素(即a(2)-a(100))赋值为1,而符号变量a2-a100仍然存在.