Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
curve_fitting/boussinesq_lookup.m
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
61 lines (53 sloc)
1.46 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function [sigma_z]=boussinesq_lookup(q,a,b,z) | |
% function that determines stress under corner of an a by b rectangular platform | |
% z-meters below the platform. The calculated solutions are in the fmn data | |
% m=fmn(:,1) | |
% in column 2, fmn(:,2), n=1.2 | |
% in column 3, fmn(:,3), n=1.4 | |
% in column 4, fmn(:,4), n=1.6 | |
fmn= [0.1,0.02926,0.03007,0.03058 | |
0.2,0.05733,0.05894,0.05994 | |
0.3,0.08323,0.08561,0.08709 | |
0.4,0.10631,0.10941,0.11135 | |
0.5,0.12626,0.13003,0.13241 | |
0.6,0.14309,0.14749,0.15027 | |
0.7,0.15703,0.16199,0.16515 | |
0.8,0.16843,0.17389,0.17739]; | |
m=a/z; | |
n=b/z; | |
if (n>1.5) | |
n=1.6; | |
elseif (1.3<=n)&&(n<=1.5) | |
n=1.4; | |
elseif 1.3<=n | |
n=1.2; | |
end | |
f=ones(1,4); | |
x=ones(1,4); | |
%for loop to find the values in the fmn matrix that should be used. | |
for i=1:4 | |
[~,p]=min(abs(m-fmn(:,1))); | |
M =fmn(p,1); | |
fmn(p,1)=0; | |
if n==1.2 | |
t=fmn(p,2); | |
elseif n==1.4 | |
t=fmn(p,3); | |
elseif n==1.6 | |
t=fmn(p,4); | |
end | |
x(i)= M; | |
f(i)=t; | |
end | |
%coefficients for the polynomial are found with the b values. | |
b1=f(1); | |
b2=(f(2)-f(1))/(x(2)-x(1)); | |
b3=(((f(3)-f(2))/(x(3)-x(2)))-((f(2)-f(1))/(x(2)-x(1)))/(x(3)-x(1))); | |
b4=(((f(4)-f(3))/(x(4)-x(3)))-((f(3)-f(2))/(x(3)-x(2)))-((f(2)-f(1))/(x(2)-x(1))))/(x(4)-x(1)); | |
%the coefficients are plugged into the third order polynoomial | |
%interpolation. | |
f3=b1+(b2*(m-x(1)))+(b3*(m-x(1))*(m-x(2)))+(b4*(m-x(1))*(m-x(2))*(m-x(3))); | |
%Stress in the vertical direction is equal to force*the third order | |
%polynomial. | |
sigma_z=q*f3; | |
end |