[問題]向量代入非線性方程以fsolve求解
版上的高手好!!
新手我只認真專研matlab不到三個月,底下發問有太離譜的問題請見諒,
還有有些程式多於我也寫進去是想說,不清楚到底需不需要它= =...哈
這是一個四連桿參數設計的一個例子,
直接以程式介紹好了
function F=myfun1(x) % 一開始宣告我的非線性方程
f=zeros(1,25); %就想說因為底下要跑25種data所以F開25零
for i=1:25 %跑25次
xlsFile = 'ex3befoeradjust.xls'; %這個是我把一些已知常數向量以記錄在excel檔
tt2 = xlsread(xlsFile,1,'A1:Z1'); %從excel叫出底下t2(角度2)的data
ww4 = xlsread(xlsFile,1,'A4:Z4'); %從excel叫出底下w4(角速度4)的data
rr4= xlsread(xlsFile,1,'A7:Z7'); %從excel叫出底下r4(桿長4長度)的data
t2=tt2(1,i); %t2(角度2)
w4=ww4(1,i); w4(角速度4)
r4=rr4(1,i); r4(桿長4長度)
F=f(i);
F=[x(1)*10*sind(t2)+10*(x(2))*sind(x(3))-r4*(w4)*sind(x(4));
x(1)*10*cosd(t2)+10*(x(2))*cosd(x(3))-r4*(w4)*cosd(x(4));
x(1)*cosd(t2)+10*cosd(x(3))-r4*cosd(x(4))-10;
x(1)*sind(t2)+10*sind(x(3))-r4*sind(x(4)) ];
end %然後我就以for迴圈1~25跑每一次代不同的常數進去
%接著求解的程式看底下
clear all
options=optimset('MaxFunEvals',5000,'MaxIter',5000,'TolFun',1e-10,'Display','iter');
for i=1:25 %求解這裡一樣給他for環圈求解25次
[x,fval]=fsolve(@myfun1,x0,options);
[x,fval];
r2(i)=x(1); % 讓每一次解出第i個x(1)解等於
w3(i)x(2); 第i種常數代進去所求出來第i個r2的解
theta3(i)=x(3); % x(2);w3 一樣意思
theta4(i)=x(4); % x(3);theta3一樣意思
end % x(4);theta4一樣意思
我的問題是,
我想要寫這個程式的目標是;
從excel檔讀取,三個常數係數向量代進去非線性方程是求解出
每一組不同的的係數條件下
所求解出的r2,w3,theta3,theta4(一樣把25種不同的解寫成向量)
而我程式寫這樣的意思,跟我的目的是一樣意思嗎?
因為他一直跑好久快四個小時了跑不完現在還在跑= =
想說是不是寫錯
拜託高手幫我看一下`;
如果錯了可以導正我應該怎麼嗎?
感謝感謝
發問的不清楚可以再詢問
謝謝謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.58.140
→
06/01 02:49, , 1F
06/01 02:49, 1F
→
06/01 02:51, , 2F
06/01 02:51, 2F
→
06/01 02:53, , 3F
06/01 02:53, 3F
→
06/01 02:57, , 4F
06/01 02:57, 4F
→
06/01 02:59, , 5F
06/01 02:59, 5F
→
06/01 03:03, , 6F
06/01 03:03, 6F
→
06/02 13:49, , 7F
06/02 13:49, 7F
→
06/02 13:50, , 8F
06/02 13:50, 8F
→
06/02 13:51, , 9F
06/02 13:51, 9F
→
06/02 13:51, , 10F
06/02 13:51, 10F
→
06/02 13:51, , 11F
06/02 13:51, 11F