| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2522 人关注过本帖
标题:[求助] 怎样定义一组变化的数组为符号变量?急!!
只看楼主 加入收藏
雪子猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-29
收藏
 问题点数:0 回复次数:3 
[求助] 怎样定义一组变化的数组为符号变量?急!!
我是为了计算一个关于不确定数组矩阵对矩阵求偏导,即如另f=[3*a1+4*b1+5*c1;3*a2+4*b2+5*c2;...;3*an+4*an+5*cn](其中n=1,2,...待定),对这样的一个(n*1)列矩阵,求其对[a1;b1;c1;a2;b2;c2;...;an;bn;cn]的导数,不知道该怎么定义这个变量才好,请达人教我。
我想到一个方法可以生成一个符号胞元,具体步骤如下:

clear
a1='a(';a2=')';
A=cell(5,1);C=cell(5,1);
for i=1:5;
A{i,1}=strcat(a1,num2str(i),a2);
C{i,1}=sym(A{i,1});
end

可以通过上面的方法生成一个符号胞元,但是当用这些符号组成函数f后并求导,就会提示出错,显示错误的运用maple语句,如令f=C{1,1}*2+C{1,1}^2+46,运行后为f =2*a(1)+a(1)^2+46,再继续对其求导t=diff(f,C{1,1}),就显示错误,为什么不可以呢?既然系统认定C内所有元素均为符号元素,为什么不可以求导了?如果将C{1,1}换成如下的运行方式就可以正常求导:
syms a;f=a*2+a^2+46;t=diff(f,a);这样算就可以

小女子我在做毕业论文,很急,望好心人帮助!

搜索更多相关主题的帖子: 变量 定义 符号 
2006-12-29 17:07
雪子猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-29
收藏
得分:0 

不用了,我自己想出来了,只要定义时把程序改为:
clear
a1='a';
A=cell(5,1);C=cell(5,1);
for i=1:5;
A{i,1}=strcat(a1,num2str(i));
C{i,1}=sym(A{i,1});
end
就可以了,这样是a1,a2,...,an的符号数组,程序认得,估计是之前定义的方法与数值数组的用法冲突,程序无法识别吧

2006-12-29 17:19
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
支持鼓励!

此人已消失
2006-12-29 22:43
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 
2006-12-31 17:14
快速回复:[求助] 怎样定义一组变化的数组为符号变量?急!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011504 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved