用MATLAB解决这个问题
有以下几组数据M43.2531.7726.1823.0715.8912.624.83Y14711710192705929已知他们的关系是Y=KM^a根据上述7组数据求得K...
有以下几组数据
M 43.25 31.77 26.18 23.07 15.89 12.62 4.83
Y 147 117 101 92 70 59 29
已知他们的关系是Y=KM^a
根据上述7组数据求得K和a的值 展开
M 43.25 31.77 26.18 23.07 15.89 12.62 4.83
Y 147 117 101 92 70 59 29
已知他们的关系是Y=KM^a
根据上述7组数据求得K和a的值 展开
展开全部
这是拟合问题。稍等。
请新建一个m文件。文件名命名为:lsqnonlin_100317.m
然后在matlab窗口中运行
>>[p resnorm] = lsqnonlin_100317()
即可。
附文件代码:
function [p resnorm] = lsqnonlin_100317()
% 有以下几组数据
% M 43.25 31.77 26.18 23.07 15.89 12.62 4.83
% Y 147 117 101 92 70 59 29
% 已知他们的关系是Y=KM^a
% 根据上述7组数据求得K和a的值
% 2010-03-17
t = [43.25 31.77 26.18 23.07 15.89 12.62 4.83];
y = [147 117 101 92 70 59 29];
figure
hold on
plot(t,y,'ob');
p0 = [0.5 0.5];%未知数向量的初始值,向量长度与未知数个数相等
[p resnorm] = lsqnonlin(@func,p0);
t2 = [1:50]
plot(t2,p(1).*t2.^p(2),'-r');
hold off
function f = func(p)
t = [43.25 31.77 26.18 23.07 15.89 12.62 4.83];
y = [147 117 101 92 70 59 29];
z = p(1).*t.^p(2);
f = z - y;
%
% 输出:
% p = 8.9875 0.7417
% 即 k = 8.9875
% a = 0.7417
请新建一个m文件。文件名命名为:lsqnonlin_100317.m
然后在matlab窗口中运行
>>[p resnorm] = lsqnonlin_100317()
即可。
附文件代码:
function [p resnorm] = lsqnonlin_100317()
% 有以下几组数据
% M 43.25 31.77 26.18 23.07 15.89 12.62 4.83
% Y 147 117 101 92 70 59 29
% 已知他们的关系是Y=KM^a
% 根据上述7组数据求得K和a的值
% 2010-03-17
t = [43.25 31.77 26.18 23.07 15.89 12.62 4.83];
y = [147 117 101 92 70 59 29];
figure
hold on
plot(t,y,'ob');
p0 = [0.5 0.5];%未知数向量的初始值,向量长度与未知数个数相等
[p resnorm] = lsqnonlin(@func,p0);
t2 = [1:50]
plot(t2,p(1).*t2.^p(2),'-r');
hold off
function f = func(p)
t = [43.25 31.77 26.18 23.07 15.89 12.62 4.83];
y = [147 117 101 92 70 59 29];
z = p(1).*t.^p(2);
f = z - y;
%
% 输出:
% p = 8.9875 0.7417
% 即 k = 8.9875
% a = 0.7417
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注楼上到进展。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询