MATLAB编程紧急求助

functiony=K(k)%programtocomputethecompleteelipticintegralsK(k)%Usingthearith-geommean... function y=K(k)
%program to compute the complete eliptic integrals K(k)
%Using the arith-geom mean method
[m,n]= size(k);
if m+ n==2
k=[k k];
end
if m==1
k= k';
end
a(:, 1)=ones(k);
b(:, 1)=sqrt(ones(k)-k.*k);
c(:, 1)=k;
i=1;
while max(c(: ,1))>eps
a(:, i+ 1)=.5*(a(:,i)+b(:,i));
b(:, i+ 1)=sqrt(a(:,i).*b(:,i));
c(:, i+ 1)=.5*(a(:,i)-b(:,i));
i=i+1;
end
t=pi*ones(k)./(2*a(:,i));
if m+n==2
y=t(1,:);
elseif m==1
y= t';
else
y= t;
end

运行输入 K([1 2 3 4 ])

提示:

??? Error using ==> ones
Size vector must be a row vector with integer elements.

Error in ==> K at 11
a(:, 1)=ones(k);

怎么回事呢
展开
 我来答
手机用户39171
2011-09-08 · TA获得超过259个赞
知道答主
回答量:366
采纳率:0%
帮助的人:218万
展开全部
哎,老了,matlab生疏了。
哥们啊,我一个心血来潮给你认真了一个下午才弄出来的,要求追加分数!
程序代码如下:
beta=0.1;
w0=1;
delta_t=25/1000;
t(1)=0;
for i=1:1000
t(i+1)=delta_t*i;
end

threshold=0.9;
x(1)=100; %为了求解方便,最后再更改比例尺
temp_v1=0;
n=1; %x的角标
for i=1:1000
for j=-100:0.001:100
temp_x=j;
temp_v2=(temp_x-x(n))/delta_t;
temp_a=(temp_v2-temp_v1)/delta_t;
if abs(temp_a+2*beta*temp_v2+w0^2*temp_x)<threshold
n=n+1;
x(n)=temp_x;
temp_v1=temp_v2;
break;
end
end
end
for i=1:1001 %回归真正的比例
x(i)=x(i)/100;
end
plot(t,x);
xlabel('Time');
ylabel('X-distance');
title('弹簧振子阻尼振动曲线');

直接运行便可以得到弹簧振子阻尼振动曲线。
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
pinggai110
2011-09-08
知道答主
回答量:7
采纳率:0%
帮助的人:6.9万
展开全部
问题出在这里 :
a(:, 1)=ones(k);
b(:, 1)=sqrt(ones(k)-k.*k);
c(:, 1)=k;
ones(k)生成的是一个全1的矩阵,a(:, 1)是一列数据 维数不匹配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式